01 啤酒和饮料
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐酒。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
for(i=1;i<=40;i++){
for(j=1;j<=50;j++){
if(i*2.3+j*1.9==82.3&&i<j){
printf("%d",i);
}
}
}
return 0;
}
02 武功秘籍
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int s,i;
s=0;
for(i=81;i<=92;i++){
if(i%2==0)
s++;
}
printf("%d",s+1);
return 0;
}
03 序列个数
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
请问有多少个序列满足下面的条件:
1.序列的长度为5。
2.序列中的每个数都是1到10之间的整数。
3.序列中后面的数大于等于前面的数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d,e,ans=0;
for(a=1;a<11;a++)
for(b=a;b<11;b++)
for(c=b;c<11;c++)
for(d=c;d<11;d++)
for(e=d;e<11;e++)
ans++;
printf("%d",ans);
return 0;
}
04 双阶乘
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int n=2021;
int sum=1;
for(i=1;i<=2021;i++)
{
if(i%2)//是奇数
{
sum*=i;
sum%=100000;
}
}
printf("%d",sum);
return 0;
}
05 利息计算
题目描述
小李年初在银行存款1千元(一年定期)。他计划每年年底取出100元救助失学儿童。
假设银行的存款利率不变,年利率为3%,年底利息自动计入本金。
下面的代码计算5年后,该账户上有多少存款。
试填写缺失的代码。
源代码
C
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
double money = 1000;
int n = 5;
int i;
for(i=0; i<n; i++)
{
money = _______________;
money -= 100;
}
printf("%.2f\n", money);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
double money = 1000;
int n = 5;
int i;
for(i=0; i<n; i++)
{
money = money*(1+0.03);
money -= 100;
}
printf("%.2f\n", money);
return 0;
}
06 大写
题目描述
给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。
输入描述
输入一行包含一个字符串。
输出描述
输出转换成大写后的字符串。
输入输出样例
示例
输入
LanQiao
输出
LANQIAO
解析
任意一个大写字母与其对应的小写字母之间的ASCIl码值的差值是一个固定值。
#include<stdio.h>
#include<string.h>
int main(){
int i,len;
char a[256];
gets(a);//gets(a) 表示输入一个字符串到数组a,
//a表示读取一个字符串存入a中,字符串输入结束标志为换行符。
len=strlen(a);
for(i=0;i<len;i++){
if(a[i]>='a'&&a[i]<='z'){
a[i]-=32;
}
}
for(i=0;i<len;i++)
printf("%c",a[i]);
}
07 移动
问题描述
小蓝有一个机器人,初始时在坐标(0,0)。
小蓝可以给机器人发送指令,指令如下:
1.指令U,如果当前机器人在(x,y),执行后机器人在(x一1,y);2.指令D,如果当前机器人在(x,y),执行后机器人在(x+1,y);3.指令L,如果当前机器人在(x,y),执行后机器
人在(x,y-1);4.指令R,如果当前机器人在(x,y),执行
后机器人在(x,y+1)。
给定指令序列,请问指令全部执行后,机器人在哪个位置?
输入格式
输入一行包含一个字符串,表示指令序列,字符串中只包含
U,D,L,R四种字符。
输出格式
输出一行包含两个整数,相邻的整数之间使用一个空格分隔,分别表
示机器人的两个坐标值。
样例输入
DDDRRLR
#include <stdio.h>
#include<string.h>
int main()
{
int x=0,y=0,i;
char n[100];
scanf("%s",n);
for(i=0;i<strlen(n);i++){
if(n[i]=='U')
x--;
if(n[i]=='D')
x++;
if(n[i]=='L')
y--;
if(n[i]=='R')
y++;
}
printf("%d %d",x,y);
}
08 算式900
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明的作业本上有道思考题:
看下面的算式:
小明经过几天的努力,终于做出了答案!如下:
(5012-4987)*36=900
用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。
注意:输出格式需要与示例严格一致;括号及运算符号不要用中文输入法;整个算式中不能包含空格。
#include <iostream>
using namespace std;
int main()
{
/*
int a,b,c,d,x,y,z,w,m,n;
for(a=6;a<10;a++){
for(b=0;b<10;b++){
for(c=0;c<10;c++){
for(d=0;d<10;d++){
for(x=1;x<10;x++){
for(y=0;y<10;y++){
for(z=0;z<10;z++){
for(w=0;w<10;w++){
for(m=1;m<10;m++){
for(n=0;n<10;n++){
if(a!=b && a!=c && a!=d && a!=x && a!=y && a!=z && a!=w && a!=m && a!=n
&& b!=c && b!=d && b!=x && b!=y && b!=z && b!=w && b!=m && b!=n
&& c!=d && c!=x && c!=y && c!=z && c!=w && c!=m && c!=n
&& d!=x && d!=y && d!=z && d!=w && d!=m && d!=n
&& x!=y && x!=z && x!=w && x!=m && x!=n
&& y!=z && y!=w && y!=m && y!=n
&& z!=w && z!=m && z!=n
&& w!=m && w!=n
&& m!=n){
if((a*1000+b*100+c*10+d-(x*1000+y*100+z*10+w))*(m*10+n)==900) {
cout <<'('<<a<<b<<c<<d<<'-'<<x<<y<<z<<w<<')'<<"*"<<m<<n<<"="<<"900";
}
}
}
}
}
}
}
}
}
}
}
}
*/
cout <<'('<<"6048"<<'-'<<"5973"<<')'<<"*"<<"12"<<"="<<"900";
return 0;
}
09 斐波那契数列最大公约数
题目描述
斐波那契数列满足F1=F2=1,从F3开始有Fn=Fn-1+Fn-2。
请你计算GCD(F2020,F520),其中GCD(A,B)表示A和B的最大公约数。
解析
斐波那契数列最大公约数定理:gcd(Fn,Fm)=F(gcd(n,m))
#include <stdio.h>
int GCD(int a, int b)
{
if (a % b != 0) return GCD(b, a % b);
else return b;
}
int fib(int n) {
int i, s1, s2;
if (n < 1)
return -1;
if (n == 1 || n == 2)
return 1;
s1 = 1;
s2 = 1;
for (i = 3; i <= n; i++) {
s2 = s1 + s2; //辗转相加法
s1 = s2 - s1; //记录前一项
}
return s2;
}
int main()
{
printf("%d", fib(GCD(2020, 520)));
return 0;
}
10 最大距离
输出描述
输出一行包含一个整数,表示答案。
输入输出样例
示例
输入
5
94247
输出
9
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,j,n1,n[1000],sum=0,max=-1;
scanf("%d",&n1);
for(i=0;i<n1;i++)
{
scanf("%d",&n[i]);
}
for(i=0;i<n1-1;i++)
{
for(j=i+1;j<n1;j++)
{
sum=abs(i-j)+abs(n[i]-n[j]);
if(sum>max)max=sum;
}
}
printf("%d",max);
return 0;
}