首页 > 代码库 > 特殊回文数字:求出5位数和6位数中各位上的数字之和为n的回文数。
特殊回文数字:求出5位数和6位数中各位上的数字之和为n的回文数。
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
本体的解题思路可以使先找出回文数,再判断各位上的数字之和是否满足n
int a=num/10000;//万位
int b=num/1000%10;//千位
int c=num/100%10;//百位
int d=num/10%10;//十位
int e=num%10;个位
源代码:#include<stdio.h> int a(int n)//求出5位数和6位数中的回文数函数 { int i,j,sum,temp,len; int a,b,c; for(i=10000;i<1000000;++i) { sum=0; temp=i; len=0; while(temp!=0) { sum=sum*10+temp%10; temp=temp/10; len++; } if(sum==i)//先把回文数求出来,下面再来比较各位数字之和是否等于n { if(5==len) { a=i%10;//个位 b=i/10%10;//十位 c=i/100%10;//百位 if(n==(2*a+2*b+c)) { printf("%d\n",i); } } if(6==len) { a=i%10;//个位 b=i/10%10;//十位 c=i/100%10;//百位 if(n==(2*a+2*b+2*c)) { printf("%d\n",i); } } } } } //主函数 int main() { int n; scanf("%d",&n); a(n); return 0; }
特殊回文数字:求出5位数和6位数中各位上的数字之和为n的回文数。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。