//题目描述:输入一个非负整数,返回组成它的数字之和,如输入1729,应该返回1+7+2+9的值
//如果不实现告诉位数的话,用递推式需要先判断位数,不方便
//2种方法 递归 或者字符串处理
#include<iostream>
#include<string.h>
using namespace std;
int sum(int n)
{
if(n < 10)
{
return n;
}
return n%10 + sum(n/10);
}
int main()
{
int num;
int sum2=0;
string s;
cin >> num;
cout << sum(num) << endl;
cin >> s;
for (int i = 0; i<s.length();i++){
sum2 +=s[i]-'0';
}
cout << sum2 <<endl;
return 0;
}
数字各位数之和
最新推荐文章于 2025-12-12 16:37:00 发布
该程序展示了两种计算非负整数各数字之和的方法:一种是通过递归实现,另一种是转换为字符串后遍历处理。递归方法中,函数`sum`会不断将输入的数除以10取余,直到余数为0,然后累加各个余数。字符串处理方法则是直接读取输入的整数的字符串形式,逐字符减去'0'得到数字并累加。这两种方法都实现了相同的功能,但实现方式不同。
2738

被折叠的 条评论
为什么被折叠?



