当前位置: 首页> 游戏> 游戏 > 模板小程序_网页设计所需软件_班级优化大师免费下载学生版_刷链接浏览量网站

模板小程序_网页设计所需软件_班级优化大师免费下载学生版_刷链接浏览量网站

时间:2025/7/12 19:10:15来源:https://blog.csdn.net/2302_78101238/article/details/146298731 浏览次数:2次
模板小程序_网页设计所需软件_班级优化大师免费下载学生版_刷链接浏览量网站
#include <stdio.h>
int DigitSum(int n){if(n<10){return n;}return (n%10)+DigitSum(n/10);
}
int main(){printf("请输入一个非负整数:\n");int a=0;while(1){if(scanf("%d",&a)!=1 || a<0){printf("输入不合法请重新输入非负整数!!\n");}else{break;}}int x=DigitSum(a);printf("组成%d的数字之和是%d",a,x);return 0;
}

 今天的代码非常的简单啊~

首先while函数判断输入是否合法,不合法就重新输入

然后定义递归函数思路:

要想实现这个功能,就要拆分这个非负整数,也就是各个位数分开,比如123,分成1 2 3,然后再相加即可

因此,我们用n/10,来剔除个位,以此调用递归,返回时,再用n%10(也就是求个位数),最后让他们加起来就行了

递归过程是这样的:

DigitSum(123) → 3 + DigitSum(12)  
DigitSum(12)  → 2 + DigitSum(1)  
DigitSum(1)   → 1  
最终结果:3 + 2 + 1 = 6  

 如果你对递归过程不了解,可以看我的这期博客:

(C语言)递归函数教学(C语言教学)-CSDN博客

运行结果如下:

请输入一个非负整数:
123
组成123的数字之和是6
请按任意键继续. . .

注:该代码是本人自己所写,可能不够好,不够简便,欢迎大家指出我的不足之处。如果遇见看不懂的地方,可以在评论区打出来,进行讨论,或者联系我。上述内容全是我自己理解的,如果你有别的想法,或者认为我的理解不对,欢迎指出!!!如果可以,可以点一个免费的赞支持一下吗?谢谢各位彦祖亦菲!!!!!

关键字:模板小程序_网页设计所需软件_班级优化大师免费下载学生版_刷链接浏览量网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: