蓝桥杯训练系统 2 特殊的回文数

题意描述:

123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

解题思路:

本来想使用两个函数分别判断回文数和各位数字和是否等于n,但枚举过程太长,把问题想得太复杂了。实际上不需要写函数,直接用数组存储每位数字之和,已经限定了位数,判断回文数更直接一些。

代码实现:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i,n,t,s=0;
 5     int a[10];
 6     
 7     scanf("%d",&n);
 8     
 9     for(i=10000;i<999999;i++)
10     {    
11         t=i;
12         s=0;
13         for(int k=0;k<6;k++)
14         {
15             a[k]=t%10;
16             t=t/10;
17             s+=a[k];
18             
19         }
20         
21         if(i<=99999&&a[4]==a[0]&&a[3]==a[1]&&n==s)
22         printf("%d\n",i);
23         
24         else if(i>=100000&&a[5]==a[0]&&a[4]==a[1]&&a[3]==a[2]&&n==s)
25         printf("%d\n",i);
26     }
27     return 0;
28     
29 }

 

posted @ 2019-03-01 20:28  沅清的小窝  阅读(177)  评论(0编辑  收藏  举报