解题思路:将回文数字的各个位都提出来,乘以每个位相应的倍数,如十万位   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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论