原题链接:蓝桥杯历届试题-回文数字
解题思路: 利用调用函数使主函数更加简洁。
注意事项: ◆调用函数写在主函数前面,或者在主函数中对需要调用的函数进行声明;◆函数可能有些臃肿,建议自己再进行修正。▓
参考代码:
#includeint hw(int k,int n,int f) //k是循环中的每一个数,依次增加;n是各个位数之和;f是标记变量 { int a=0,b=k; int s,m=0; while(1){ //用while循环来判断回文数和各个位数之和 s=k%10; m+=s; //m用来计算各个位数之和,以便后续判断 a=a*10+s; k/=10; if(k==0) //当k为0时跳出去循环,防止死循环 break; } if(a==b&&m==n) //判断是否为回文数且各个位数之和是否和输入值相等 { f=0; //当有输出时,变量的值发生变化 printf("%d\n",a); //输出条件符合的数值 } return f; //返回变量的最终值(这里我也不是特别清楚,没有返回的话标记变量的值不会变化, 主函数中任意输入值的输出结果 都会带有-1) } int main(){ int n,s=0,i,f=1,g; //f是用来标记的变量,以此来确定是否有输出 scanf("%d",&n); for(i=10000;i<1000000;i++){ //题目要求,直接用循环条件 f=hw(i,n,f); 调用hw函数,(个人觉得会使主函数简洁一些,当然代码行数可能会增加¥¥¥) } if(f) //如果f为1,则没有输出,此时输出-1; printf("-1\n"); return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复