1、判断回文数
【问题描述】
有这样一类数,它们顺着看和倒着看是相同的数,例如:121、656、2332等,这样的数字叫做回文数字。编写一个程序,判断从键盘输入的数字是否为回文数字。 提示:可以通过将一个十进制数“倒置”的办法来判断它是否是回文数。所谓倒置,就是计算该十进制数倒过来后的结果。如123->321,因为123不等于321,所以不是回文数;121->121,倒置后相同,所以是回文数。
【输入形式】
一个十进制整数
【输出形式】
判断该数是否为回文数的结果
【样例输入】
121
【样例输出】
121 is palindrome number
【样例说明】
第2组测试样例
输入:123
输出:123 is not palindrome number
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int x,y,z,a=0;
scanf("%d",&x);
y=x;
while(x!=0)
{
z=x%10;
a=a*10+z;
x=x/10;
}
if(y==a)
{
printf("%d is palindrome number\n",y);
}
else
{
printf("%d is not palindrome number\n",y);
}
return 0;
}
2、寻找满足条件的数
【问题描述】
编写程序找出m到n之间所有整数中满足如下条件的数:该数的高端两位数字的和与低端两位数字的和值相等,如1001, 1120。程序能输出所有满足条件的数以及它们的总个数。
【输入形式】
m和n的值,m和n均为4四位整数,并且m<n。
【输出形式】
两行,第一行:找到的所有满足条件的数,第二行:找到的数据个数。
【样例输入】
1000 1100
【样例输出】
1001 1010
2
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int m,n,a,b,c,d,i,sum=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
a=i%10;
b=i/10%10;
c=i/100%10;
d=i/1000%10;
if(a+b==c+d)
{
sum++;
printf("%d ",i);
}
}
printf("\n");
printf("%d\n",sum);
return 0;
}
3、细菌繁殖
【问题描述】
编程求解问题:有一种细菌,从其产生的第4分钟后,每分钟都产生一个同种细菌。若某初始时刻仅有一个这种细菌,那么此后第n分钟时共有多少种这种细菌?
提示:
初始时刻(第t=0分钟),a(0)=1, b(0)=c(0)=d(0)=0
细菌总数为s(0)=a(0)+b(0)+c(0)+d(0)=1。
下一时刻 d(t+1)=c(t)+d(t)
c(t+1)=b(t)
b(t+1)=a(t)
a(t+1)=d(t)(即迭代关系)
【输入形式】
输入正整数n
【输出形式】
输出n+1个数,表示从开始时刻(第0分钟)到第n分钟(共n+1个时刻),每个时刻所产生的细菌数的总数,数据之间用一个空格隔开
【样例输入】
10
【样例输出】
1 1 1 1 2 3 4 5 7 10 14
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int a=1,b=0,c=0,d=0,s=1,n,t,i;
scanf("%d",&n);
for(t=0;t<=n;t++)
{
printf("%d ",s);
i=d;
d=c+d;
c=b;
b=a;
a=i;
s=a+b+c+d;
}
printf("\n");
return 0;
}
4、求6整数中非0偶数的积
【问题描述】
输入6个整数,求其中非0的偶数积。(用循环完成)
说明:假设输入的6个数中至少有一个是非0的偶数。
【输入形式】
输入数据为6个整数
【输出形式】
输出偶数的积
【样例输入】
13 12 2 0 3 1
【样例输出】
24
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int i;
int a[6],s=1;
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<6;i++)
{
if(a[i]%2==0&&a[i]!=0)
{
s*=a[i];
}
}
printf("%d\n",s);
return 0;
}
5、求2+22+222+...
【问题描述】
求Sn=a+aa+aaa+...+a...a(n个a)之值,其中a是一个数字,n表示a的个数
【输入形式】
例如2+22+222,此时n=3,a=2,因此在输入时只需输入:2 3 注意:a的值是0~9
【输出形式】
输出Sn的值
【样例输入】
2 3
【样例输出】
246
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,n,i,Sn=0;
scanf("%d %d",&a,&n);
b=a;
for(i=1;i<=n;i++)
{
Sn+=a;
a=a*10+b;
}
printf("%d\n",Sn);
return 0;
}
6、求奇数的乘积
【问题描述】
给你n个整数,求他们中所有奇数的乘积
【输入形式】
每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数
【输出形式】
输出每组数中的所有奇数的乘积,对于测试实例,输出一行
【样例输入】
3 1 2 3
【样例输出】
3
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int a[10],i,n,m=1;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]%2!=0)
{
m*=a[i];
}
}
printf("%d\n",m);
return 0;
}
7、下落的球
【问题描述】一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算球在第5次落地时,共经过多少米? 第5次反弹多高?
【输入形式】
整数h0,表示球最开始的高度
【输出形式】
两个数据s和h,分别表示第5次落地时共经过s米,第5次反弹高度为h米,s和h用空格隔开。(按样例保留相应的小数位数)
【样例输入】
10
【样例输出】
28.75 0.3125
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int h0,i;
double s=0,h,h1;
scanf("%d",&h0);
h1=h0;
for(i=2;i<=5;i++)
{
s+=h1;
h1=h1/2.0;
}
h=h1/2.0;
s+=h0;
printf("%.2f %.4f\n",s,h);
return 0;
}
8、输出加1秒后的新时间
【问题描述】
输入一个时间,时间格式为:小时:分:秒,要求加一秒后,输出新的时间。(24小时制)
【输入形式】
输入数据含3个整数,分别表示小时、分、秒。数据之间用“:”分隔(英文冒号)
【输出形式】
在一行上输出加1秒后的新时间。每个数据占2位,不足2位,在数据左边补0。
【样例输入】
5:38:59
【样例输出】
05:39:00
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
scanf("%d:%d:%d",&a,&b,&c);
c+=1;
if(c==60)
{
c=0;
b++;
if(b==60)
{
b=0;
a++;
if(a==24)
{
a=0;
b=0;
c=0;
}
}
}
printf("%02d:%02d:%02d\n",a,b,c);
return 0;
}
9、打印三角形
【问题描述】打印三角形,输入n的值,输出对应形状的三角形
【输入形式】输入一个整数N(2<N<20)
【输出形式】输出对应形状的三角形
【样例输入】3
【样例输出】
* *** *****
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int N,i,j,a;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
for(a=N;a>i;a--)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
printf("\n");
return 0;
}
10、求n的最大值
【问题描述】
编写程序求出下式中n的最大值:22+42+62+…+n2<m。式子左边是求和的过程,每个加数的十位数是从2开始,偶数递增的,个位数固定为2。m由用户输入。
【输入形式】
m的值(输入的m是一个大于22的值)
【输出形式】
满足条件的n的最大值
【样例输入】
150
【样例输出】
6
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int m,n,s=0,a=22;
scanf("%d",&m);
while(1)
{
s+=a;
if(s>m)
{
break;
}
a+=20;
}
n=(a-20)/10;
printf("%d\n",n);
return 0;
}