蓝桥杯练手之回文数字
观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
本题要求你找到一些5位或6位的十进制数字。满足如下要求:
该数字的各个数位之和等于输入的整数。
【输入格式】
一个正整数 n(10<n<100), 表示要求满足的数位和。
【输出格式】
若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
#include<stdio.h> int main() { int flag,k,i,m,j; flag=1; printf("输入一个两位数\n"); scanf("%d",&k); if(10<k&&k<99&&flag==1) { for(i=10000;i<=99999;i++) {//判断五位数 int a[5],s2; m=i;s2=0; for(j=0;j<5;j++) { a[j]=m%10; m=m/10; } for(j=0;j<5;j++) { s2=s2+a[j]; } if(k==s2) { int w=0; for(j=0;j<2;j++) { if(a[j]==a[4-j]) { w++; } } if(w==2) { printf("%d\n",i); } } } for(i=100000;i<=999999;i++) {//判断六位数 int a[6],s; m=i;s=0; for(j=0;j<=5;j++) { a[j]=m%10; m=m/10; } for(j=0;j<=5;j++) { s=s+a[j]; } if(k==s) { int w=0; for(j=0;j<3;j++) { if(a[j]==a[5-j]) { w++; } } if(w==3) { printf("%d\n",i); flag=0; } } } } else printf("输入的不合法"); return 0; }
不为失败找原因,要为成功找方法!