1.问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
血马简单 但是还是要敲
1 #include"stdio.h" 2 int main(void) 3 { 4 int i,a,b,c,d; 5 for(i=1000;i<10000;i++) 6 { 7 a=i/1000; //abcd依次第一二三四位 8 b=(i%1000)/100; 9 c=(i%100)/10; 10 d=i%10; 11 if(a==d&&b==c) 12 printf("%d%d%d%d ",a,b,c,d); 13 } 14 return 0; 15 }
2.
求特殊回文数
123321
是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n,
编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54
首先 最最最sb的办法:我连排版都懒得排
#include"stdio.h" int main(void) { int n; int a[6]; printf("Enter n:"); scanf("%d",&n); if(n>=1&&n<=54) { for(a[0]=0;a[0]<=9;a[0]++) { for(a[1]=0;a[1]<=9;a[1]++) { for(a[2]=0;a[2]<=9;a[2]++) { for(a[3]=0;a[3]<=9;a[3]++) { for(a[4]=0;a[4]<=9;a[4]++) { if(a[0]==a[4]&&a[1]==a[3]&&a[0]+a[1]+a[2]+a[3]+a[4]==n) printf("%d%d%d%d%d ",a[0],a[1],a[2],a[3],a[4]); } } } } } for(a[0]=0;a[0]<=9;a[0]++) { for(a[1]=0;a[1]<=9;a[1]++) { for(a[2]=0;a[2]<=9;a[2]++) { for(a[3]=0;a[3]<=9;a[3]++) { for(a[4]=0;a[4]<=9;a[4]++) { for(a[5]=0;a[5]<=9;a[5]++) { if(a[0]==a[5]&&a[1]==a[4]&&a[2]==a[3]&&a[0]+a[1]+a[2]+a[3]+a[4]+a[5]==n) printf("%d%d%d%d%d%d ",a[0],a[1],a[2],a[3],a[4],a[5]); } } } } } } } return 0; }
一般人的脑子:
1 #include <stdio.h> 2 int main() 3 { 4 int i, n; 5 scanf("%d", &n); 6 for (i = 10000; i < 100000; i++) 7 { 8 int a = i / 10000; 9 int b = (i % 10000) / 1000; 10 int c = (i % 1000) / 100; 11 int d = (i % 100) / 10; 12 int e = i % 10; 13 if (a == e && b == d && a+b+c+d+e == n) 14 printf("%d ", i); 15 } 16 for (i = 100000; i < 1000000; i++) 17 { 18 int a = i / 100000; 19 int b = (i % 100000) / 10000; 20 int c = (i % 10000) / 1000; 21 int d = (i % 1000) / 100; 22 int e = (i % 100) / 10; 23 int f = i % 10; 24 if (a == f && b == e && c == d && a+b+c+d+e+f == n) 25 printf("%d ", i); 26 } 27 return 0; 28 }