原题链接:蓝桥杯历届试题-回文数字
解题思路:
遍历所有可能的情况
注意事项:
最高为不能为0,无结果时返回-1
参考代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(int argc, char *argv[]) { char a[11]= {"0123456789"}; char b[6]= {"00000"},c[7]= {"000000"}; int i1,i2,i3,i4,i5,i6,j,flag,s,num,sum,counts=0; scanf("%d",&num); for(i1=1; i1<10; i1++) { b[0]=a[i1]; for(i2=0; i2<10; i2++) { b[1]=a[i2]; for(i3=0; i3<10; i3++) { b[2]=a[i3]; for(i4=0; i4<10; i4++) { b[3]=a[i4]; for(i5=0; i5<10; i5++) { b[4]=a[i5]; sum=0; for(s=0; s<5; s++) { sum=sum+(b[s]-'0'); } if(sum==num) { flag=1; for(j=0; j<2; j++) { if(b[j]==b[4-j])continue; else flag=0; } if(flag) {puts(b);counts++;} } } } } } } /*--------------------------------------------------*/ for(i1=1; i1<10; i1++) { c[0]=a[i1]; for(i2=0; i2<10; i2++) { c[1]=a[i2]; for(i3=0; i3<10; i3++) { c[2]=a[i3]; for(i4=0; i4<10; i4++) { c[3]=a[i4]; for(i5=0; i5<10; i5++) { c[4]=a[i5]; for(i6=0; i6<10; i6++) { c[5]=a[i6]; sum=0; for(s=0; s<6; s++) { sum=sum+(c[s]-'0'); } if(sum==num) { flag=1; for(j=0; j<3; j++) { if(c[j]==c[5-j])continue; else flag=0; } if(flag) {puts(c);counts++;} } } } } } } } if(!counts)printf("%d",-1); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复