一、特殊回文数问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式 输入一行,包含一个正整数n。
输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入 52
样例输出 899998
989989
998899
数据规模和约定 1<=n<=54
#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
//while(scanf("%d", &n)!=EOF){
int p = 10001;
int a, b, c, d, e, f;
while(p < 100000){
a = p/10000;//万位
b = p%10000/1000;//千位
c = p%1000/100;//百位
d = p%100/10;//十位
e = p%10;//个位
if(a+b+c+d+e == n && a == e && b == d) printf("%d\n", p);
p++; }
int q = 100001;
while(q < 1000000){
a = q/100000;//十万位
b = q%100000/10000;//万位
c = q%10000/1000;//千位
d = q%1000/100;//百位
e = q%100/10;//十位
f = q%10;//个位
if(a+b+c+d+e+f == n && a == f && b == e && c == d)
printf("%d\n", q);
q++; }
//}
return 0;
}
二、闰年
问题描述给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1. 年份是4的倍数而不是100的倍数;
2. 年份是400的倍数。其他的年份都不是闰年。
输入格式 输入包含一个整数y,表示当前的年份。
输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
样例输入 2013
样例输出 no
样例输入 2016
样例输出 yes
数据规模与约定
1990<=y<=2050
#include<stdio.h>
int main()
{ int year;
scanf("%d",&year);
if(year%4 == 0 && year%10 != 0 || year%400 == 0)
{ printf("yes"); }
else
{ printf("no"); }
return 0;
}
三、排序
问题描述
编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。
输入格式:输入只有一行,即三个整数,中间用空格隔开。
输出格式:输出只有一行,即排序后的结果。
输入输出样例
样例输入
9 2 30
样例输出
30 9 2
#include<stdio.h>
int main()
{
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=a;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
printf("%d %d %d",a,b,c);
return 0;
}
四、水仙花数
问题描述
判断给定的三位数是否 水仙花 数。所谓 水仙花 数是指其值等于它本身 每位数字立方和的数。例 153 就是一个 水仙花 数。 153=13+53+33
输入格式
一个整数。
输出格式
是水仙花数,输出"YES",否则输出"NO"(不包括引号)
样例输入
123
样例输出
NO
数据规模和约定
一个三位的整数,否则输出"NO"
#include<stdio.h>
int main()
{
int num,a,b,c;
scanf("%d",&num);
a=num/100;
b=num/10%10;
c=num%10;
if(num==a*a*a+b*b*b+c*c*c)
printf("YES");
else
printf("NO");
return 0;
}
蓝杯五 蓝杯五 蓝杯五 蓝杯五 蓝杯五 蓝杯五
网友评论