资源描述
1041: 绝对值最大
时间限制: 1 Sec 内存限制: 30 MB
提交: 1053 解决: 589
[提交][状态][讨论版]
题目描述
输入3个整数,输出绝对值最大的那个数。
输入
输入包含3个int范围内的整数,用空格隔开。
输出
输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。
样例输入
1 2 -3
样例输出
-3
提示
来源
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,i,d,e,f,max;
scanf("%d%d%d",&a,&b,&c);
d=abs(a);
e=abs(b);
f=abs(c);
max=d;
i=a;
if(e>max)
{
max=e;
i=b;
}
if(f>max)
{
max=f;
i=c;
}
printf("%d",i);
return 0;
}
1053: 阶乘表
时间限制: 1 Sec 内存限制: 128 MB
提交: 1607 解决: 571
[提交][状态][讨论版]
题目描述
输入一个正整数n(n<20),输出1到n之间阶乘表。
输入
输入只有一个正整数n。
输出
输出1到n之间的阶乘表,格式见输出样例。每行两个数据,第一个数据占4列,第二个数据占20列,左对齐。
样例输入
5
样例输出
1 1
2 2
3 6
4 24
5 120
提示
来源
#include<stdio.h>
int main()
{
int i,n,j;
double s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
s=s*j;
}
printf("%-4d%-20.0lf\n",i,s);
s=1;
}
return 0;
}
1059: 猴子吃桃
时间限制: 1 Sec 内存限制: 128 MB
提交: 455 解决: 378
[提交][状态][讨论版]
题目描述
悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
输入
输入一个数n(1<=n<=30)。
输出
输出第一天的桃子个数。
样例输入
3
样例输出
10
提示
来源
#include<stdio.h>
int main()
{
int n,m=1,i;
scanf("%d",&n);
for(i=1;i<n;i++)
{
m=2*(m+1);
}
printf("%d",m);
return 0;
}
1060: 兔子繁殖问题
时间限制: 1 Sec 内存限制: 128 MB
提交: 806 解决: 459
[提交][状态][讨论版]
题目描述
这是一个有趣的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有一对刚出生的小兔子,问第n个月有多少对兔子?
输入
输入月数n(1<=n<=44)。
输出
输出第n个月有多少对兔子。
样例输入
3
样例输出
2
提示
来源
#include<stdio.h>
int main()
{
int n,a[100],b,i;
a[0]=1;
a[1]=1;
scanf("%d",&n);
if(n==1||n==2)
printf("2");
else if(n>2)
{
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];
}
printf("%d",a[n-1]);
}
return 0;
}
1061: 整存零取
时间限制: 1 Sec 内存限制: 128 MB
提交: 356 解决: 319
[提交][状态][讨论版]
题目描述
假设银行一年整存零取的月息为x,现在某人手头有一笔钱,他打算在今后5年中,每年年底取出1000元作为孩子来年的教育金,到第5年孩子毕业时刚好取完这笔钱,请编程计算第1年年初时他应存入银行多少钱。
输入
输入一个实数x,表示月息。
输出
输出一个实数,小数点后保留两位小数,占一行。
样例输入
0.01875
样例输出
2833.29
提示
来源
#include<stdio.h>
#include<math.h>
int main()
{
int i,j;
float a,b=0;
scanf("%f",&a);
for(i=1;i<=5;i++)
{
b=b+1000;
b=b/(1+a*12);
}
printf("%.2f",b);
return 0;
}
1063: 求解不等式
时间限制: 1 Sec 内存限制: 128 MB
提交: 526 解决: 300
[提交][状态][讨论版]
题目描述
已知不等式 1!+2!+3!+...+m!‹n,请编程对用户指定的n值计算并输出满足该不等式的m的整数解。
输入
输入一个正整数n,n不大于1000000。
输出
输出m的取值范围,具体格式见输出样例。
样例输入
1000000
样例输出
m<=9
提示
来源
#include<stdio.h>
int main()
{
int m=1,j,s=0,a,n;
scanf("%d",&n);
while(s<n)
{
a=1;
for(j=1;j<=m;j++)
{
a=a*j;
}
s=s+a;
m=m+1;
}
printf("m<=%d",m-2);
return 0;
}
1068: 最大公约数
时间限制: 1 Sec 内存限制: 128 MB
提交: 490 解决: 216
[提交][状态][讨论版]
题目描述
输入两个正整数,输出其最大公约数。
输入
输入两个正整数m和n,数据之间用空格隔开。
输出
输出一个整数,表示m和n的最大公约数。
样例输入
4 6
样例输出
2
提示
来源
#include<stdio.h>
int main()
{
int m,n,a,b;
scanf("%d%d",&m,&n);
if(m>n)
{
a=m;
m=n;
n=a;
}
while(m!=n)
{
b=n-m;
if(m>b)
{
n=m;
m=b;
}
else
{
n=b;
m=m;
}
}
printf("%d",m);
return 0;
}
1069: 最大公约与最小公倍
时间限制: 1 Sec 内存限制: 128 MB
提交: 581 解决: 190
[提交][状态][讨论版]
题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入
4 6
样例输出
2 12
提示
来源
#include<stdio.h>
int main()
{
int m,n,a,b,c;
double d;
scanf("%d%d",&m,&n);
c=m;
d=n;
if(m>n)
{
a=m;
m=n;
n=a;
}
while(m!=n)
{
b=n-m;
if(m>b)
{
n=m;
m=b;
}
else
{
n=b;
m=m;
}
}
printf("%d %.0lf",m,(c*d)/m);
return 0;
}
1070: 加密字符
时间限制: 1 Sec 内存限制: 128 MB
提交: 398 解决: 184
[提交][状态][讨论版]
题目描述
从键盘输入一批字符,以@结束,按要求加密并输出。
输入
从键盘输入一批字符,占一行,以@结束。
输出
输出占一行
加密规则:
1)、所有字母均转换为小写。
2)、若是字母'a'到'y',则转化为下一个字母。
3)、若是'z',则转化为'a'。
4)、其它字符,保持不变。
样例输入
Kyh520@
样例输出
lzi520
提示
来源
#include<stdio.h>
int main()
{
char a[1000];
int i;
scanf("%c",&a[0]);
i=0;
while(a[i]!='@')
{
if(a[i]>=65&&a[i]<90)
{
a[i]=a[i]+33;
printf("%c",a[i]);
}
else if(a[i]>=97&&a[i]<122)
{
a[i]=a[i]+1;
printf("%c",a[i]);
}
else if(a[i]==122)
{
a[i]=97;
printf("%c",a[i]);
}
else if(a[i]==90)
{
a[i]=97;
printf("%c",a[i]);
}
else
{
printf("%c",a[i]);
}
i++;
scanf("%c",&a[i]);
}
return 0;
}
1071: 统计数字字符的个数
时间限制: 1 Sec 内存限制: 128 MB
提交: 255 解决: 212
[提交][状态][讨论版]
题目描述
输入一行字符,以回车符作为输入结束的标志。统计其中数字字符的个数。
输入
多个字符,以回车符结束,回车符不作为有效字符。
输出
输出一个整数,表示数字字符的个数。
样例输入
abrt12@2013
样例输出
6
提示
来源
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
int i,j=0,n;
gets(a);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]>=48&&a[i]<=57)
{
j++;
}
}
printf("%d",j);
return 0;
}
1072: 字符分类统计
时间限制: 1 Sec 内存限制: 128 MB
提交: 433 解决: 218
[提交][状态][讨论版]
题目描述
输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。
输入
多个字符,以回车符结束,回车符不作为有效字符。有效字符个数不超过100。
输出
输出分3行,格式见输出样例。
样例输入
Abse 4+5*3=?
样例输出
letter:4
digit:3
other:5
提示
来源
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
int i,n,j=0,k=0,b=0;
gets(a);
n=strlen(a);
for(i=0;i<n;i++)
{
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
{
b++;
}
else if(a[i]>='0'&&a[i]<='9')
{
j++;
}
else
{
k++;
}
}
printf("letter:%d\n",b);
printf("digit:%d\n",j);
printf("other:%d\n",k);
return 0;
}
1074: 分解质因子
时间限制: 1 Sec 内存限制: 128 MB
提交: 276 解决: 127
[提交][状态][讨论版]
题目描述
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
输入
输入一个正整数n(2<=n<=2000)。
输出
从小到大输出n的所有质因子,每两个数之间空一格。
样例输入
20
样例输出
2 2 5
提示
注意,最后一个数后面没有空格!!
来源
#include<stdio.h>
int main()
{
int i,j,a,b,c,d=0;
scanf("%d",&a);
while(a!=1)
{
for(i=2;i<=a;i++)
{
b=a%i;
if(b==0)
{
c=i;
break;
}
}
a=a/c;
if(d==0)
{
printf("%d",c);
}
else if(d>0)
printf(" %d",c);
d=1;
}
return 0;
}
1075: 青蛙爬井
时间限制: 1 Sec 内存限制: 128 MB
提交: 356 解决: 246
[提交][状态][讨论版]
题目描述
有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,对于任意指定的high、up和down值(均为自然数),计算青蛙多少天能够爬出井口?
输入
输入3个正整数:high、up和down。
输出
输出一个整数,表示天数。输出单独占一行。
样例输入
10 2 1
样例输出
9
提示
来源
#include<stdio.h>
int main()
{
int a,b,c,i=0;
scanf("%d%d%d",&a,&b,&c);
while(a>0)
{
a=a-b;
i++;
if(a<=0)
{
printf("%d",i);break;
}
a=a+c;
}
return 0;
}
1076: 海军节上的鸣炮声计算
时间限制: 1 Sec 内存限制: 128 MB
提交: 332 解决: 111
[提交][状态][讨论版]
题目描述
在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各n响。已知A舰每个a秒放一次,B舰每隔b秒放一次,C舰每隔c秒放一次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次炮声。
输入
输入n,a,b,c的值,所有输入不大于10000。
输出
输出一个整数,代表观众听到的礼炮声总数。
样例输入
21 7 6 5
样例输出
54
提示
来源
1077: 百钱买百鸡
时间限制: 1 Sec 内存限制: 128 MB
提交: 867 解决: 322
[提交][状态][讨论版]
题目描述
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?
输入
输入一个正整数n(n<=100)。
输出
如果有解,种组合占一行,包含公鸡、母鸡、小鸡的个数,用正整数表示,每个数据占4列。公鸡母鸡小鸡个数均大于等于0,按公鸡数目从小到大输出,公鸡数目相同按母鸡数目从小到大输出,以此类推。如果无解,输出“No Answer”。
样例输入
100
样例输出
0 25 75
4 18 78
8 11 81
12 4 84
提示
来源
#include<stdio.h>
int main()
{
double s,n,i,j,k,a=0;
scanf("%lf",&n);
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
{
for(k=0;k<=n;k++)
{
s=(double)(5*i+3*j+k/3);
if((s==n)&&(i+j+k==n))
{
a=1;
printf("%4.0lf%4.0lf%4.0lf\n",i,j,k);
}
}
}
}
if(a==0)
{
printf("No Answer");
}
return 0;
}
1078: 聚餐人数统计
时间限制: 1 Sec 内存限制: 128 MB
提交: 363 解决: 225
[提交][状态][讨论版]
题目描述
马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计m个人,在一家饭店里吃饭,共花了n先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几个。
输入
输入两个正整数,表示人数m和花费n。
输出
若问题有解,则输出所有解,每行输出三个数据,代表男人、女人和小孩的人数,用空格分隔;若问题无解,则输出“No answer"。
样例输入
30 50
样例输出
0 20 10
1 18 11
2 16 12
3 14 13
4 12 14
5 10 15
6 8 16
7 6 17
8 4 18
9 2 19
10 0 20
提示
来源
#include<stdio.h>
int main()
{
int s,i,j,k,a=0,n,m;
scanf("%d%d",&m,&n);
for(i=0;i<=m;i++)
{
for(j=0;j<=m;j++)
{
for(k=0;k<=m;k++)
{
s=3*i+2*j+k;
if(s==n&&i+j+k==m)
{
a=1;
printf("%d %d %d\n",i,j,k);
}
}
}
}
if(a==0)
{
printf("No answer");
}
return 0;
}
1079: 三位数求解
时间限制: 1 Sec 内存限制: 128 MB
提交: 557 解决: 198
[提交][状态][讨论版]
题目描述
已知xyz+yzz=n,其中n是一个正整数,x、y、z都是数字(0-9),编写一个程序求出x、y、z分别代表什么数字。如果无解,则输出“No Answer”
注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z。
输入
输入一个正整数n。
输出
输出一行,包含x、y、z的值,每个数值占4列。
样例输入
532
样例输出
3 2 1
提示
来源
#include<stdio.h>
int main()
{
int s,n,x,y,z,a,b,c,flot=0;
scanf("%d",&n);
c=n%10;
b=(n/10)%10;
a=n/100;
for(x=1;x<=9;x++)
{
for(y=1;y<=9;y++)
{
for(z=0;z<=9;z++)
{
s=100*x+10*y+z+100*y+10*z+z;
if(s==n)
{
flot=1;
printf("%4d%4d%4d",x,y,z);
}
}
}
}
if(flot==0)
{
printf("No Answer");
}
return 0;
}
1080: 打印数字图形
时间限制: 1 Sec 内存限制: 128 MB
提交: 134 解决: 105
[提交][状态][讨论版]
题目描述
从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。
输入
正整数n(1≤n≤9)。
输出
指定数字图形。
样例输入
5
样例输出
1
121
12321
1234321
123454321
1234321
12321
121
1
提示
来源
#include<stdio.h>
int main()
{
int i,j,k,n,b,a=0,c,d;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(j=n-i+1;j<=n;j++)
{
a++;
printf("%d",a);
}
a=0;
b=i;
for(j=n+1;j<=n+i-1;j++)
{
printf("%d",b-1);
b--;
}
printf("\n");
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
c=0;
for(j=i+1;j<=n;j++)
{
c++;
printf("%d",c);
}
d=n-i-1;
for(j=n+1;j<=2*n-i-1;j++)
{
printf("%d",d);
d--;
}
printf("\n");
}
return 0;
}
展开阅读全文