解题思路:将回文数字的各个位都提出来,乘以每个位相应的倍数,如十万位 1(十万位)*100000 然后相加,然后从个位开始反着再来一次,判断两者的和是否相等,就是回文数字,并用计数器num记录,以便输出-1。if里的表达式有点长,主要是脑子不够用。 由于比较简单,发的晚可能会跟前面的大哥撞文,望见谅!
注意事项:因为定义了shiwan这个变量,但五位的回文数并没有十万位,所以用if(i>=10000&&i<100000),让五位回文数能输出出来!
参考代码:
#include<stdio.h>
int main()
{
int ge,shi,bai,qian,wan,shiwan;
int i,n,num=0;
scanf("%d",&n);
for(i=10000;i<1000000;i++)
{
shiwan=i/100000;
wan=(i/10000)%10;
qian=(i/1000)%10;
bai=(i/100)%10;
shi=(i/10)%10;
ge=i%10;
if((i>=100000&&i<1000000)&&shiwan*100000+wan*10000+qian*1000+bai*100+shi*10+ge==ge*100000+shi*10000+bai*1000+qian*100+wan*10+shiwan&&ge+shi+bai+qian+wan+shiwan==n&&(n>10&&n<100))
{
printf("%d\n",i);num+=1;
}
else if((i>=10000&&i<100000)&&wan*10000+qian*1000+bai*100+shi*10+ge==ge*10000+shi*1000+bai*100+qian*10+wan&&ge+shi+bai+qian+wan==n&&(n>10&&n<100))
{
printf("%d\n",i);num+=1;
}
}
if(num==0)
printf("-1\n");
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复