蓝桥杯 特殊回文数
题目:
(网络菜鸡第一次写~~~~~哈哈哈)
思路 :先判断是否满足 s == n条件, 若满足,则判断该数是否为回文数,满足以上两个条件,则输出 i;
代码:
#include <stdio.h>
int main (void)在这里插入代码片
{
int i, j, s, n, k, c,flag ;
int a[6] = {0} ;
s = k = n = i = j = c = 0 ;
flag = 1 ;
scanf ("%d", &n) ;
for (i = 10001; i <= 999999; i++)
{
k = i ;
while (k != 0) //将数字从整数中分割出来 放到数组a[ ]中
{
s += a[j++] = k % 10 ; //在放数字的过程中,一并累计各数字和
k /= 10 ;
}
if (s == n) //如果各位数之和等于输入的 n ,则执行下面判断是 否为回文数的操作
{
j-- ;
while (j > c)
{
if (a[j--] != a[c++]) //如果不满足回文数条件,将flag = 0(标志 不满足回问条件 ),且结束本次循环
{
flag = 0 ;
break ;
}
}
if (flag == 1) //满足s == n && flag == 1
{
printf ("%d\n",i) ; // 输出满足条件的 i ;
}
}
a[0] = a[1] = a[2] = a[3] = a[4] =a[5] = 0 ; //一轮大循环结束后,变量 “初始化”
flag = 1 ;
s = 0 ;
j = 0 ;
c = 0 ;
}
return 0 ;
}