题目:用户输入一个数字后,输出5位、6位的回文数,并且回文数的每个数字加起来等于用户输入的数字。
输入:一个正整数n(10<n<100)
输出:若干行,每行包含一个满足要求的5位或6位数,按照升序输出。
如果没有满足要求的,输出-1.
样例:
//Q21-回文数 //蓝桥杯 #include<stdio.h> int Result; int Check(int num, int length){ int temp,r1; int check=num; if(length==5){ check/=10; temp=(check%10)*10; check/=10; temp+=check%10; num*=100; num+=temp; } else{ temp=(check%10)*100; check/=10; temp+=(check%10)*10; check/=10; temp+=check; num*=1000; num+=temp; } r1=num; temp=0; while(r1){ temp+=r1%10; r1/=10; } if(temp==Result){ printf("%d ",num); return 1; } else return 0; } int main(void){ scanf("%d",&Result); int r1,result=0,temp; for(r1=100;r1<=999;r1++){ if(Check(r1,5)) result++; } for(r1=100;r1<=999;r1++){ if(Check(r1,6)) result++; } if(result==0) printf("-1 "); return 0; }