linzhongye


私信TA

用户名:1796331401

访问量:324

签 名:

等  级
排  名 40981
经  验 369
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 某学院
专  业

  自我简介:

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

1 人评分

  评论区

  • «
  • »