问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998 989989 998899
数据规模和约定
1<=n<=54。
题目要求我们输出的就是一个回文数,不过它比较特殊——各位数字之和加起来等于输入的整数
#include <stdio.h> int huiwenshu(int num, int res) { int temp=num, sum=0, count=0; while(num) { count=count+num%10; sum=sum*10+num%10; num/=10; } if(temp==sum && count == res) return 1; } int main() { int i, j, num, res; scanf("%d", &res); for(i=10000; i<1000000; i++) { if(huiwenshu(i, res)==1) printf("%d\n", i); } return 0; }
123456789101112131415161718192021222324 | #include <stdio.h>int huiwenshu(int num, int res){ int temp=num, sum=0, count=0; while(num) { count=count+num%10; sum=sum*10+num%10; num/=10; } if(temp==sum && count == res) return 1; }int main(){ int i, j, num, res; scanf("%d", &res); for(i=10000; i<1000000; i++) { if(huiwenshu(i, res)==1) printf("%d\n", i); } return 0; } |
---|
int huiwenshu(int num, int res) { int temp=num, sum=0; while(num) { sum=sum*10+num%10; num/=10; } if(temp==sum) return 1; }
1234567891011 | int huiwenshu(int num, int res){ int temp=num, sum=0; while(num) { sum=sum*10+num%10; num/=10; } if(temp==sum) return 1; } |
---|