试题编号: 201512-1
试题名称: 数位之和
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
给定一个十进制整数n,输出n的各位数字之和。
输入格式
输入一个整数n。
输出格式
输出一个整数,表示答案。
样例输入
20151220
样例输出
13
样例说明
20151220的各位数字之和为2+0+1+5+1+2+2+0=13。
评测用例规模与约定
所有评测用例满足:0 ≤ n ≤ 1000000000。
代码思路:
- 首先读入一个十进制整数n。
- 使用循环结构,依次取出n的每一位数字,并将其累加到一个变量sum中。
- 取出n的一位数字可以使用模运算符%和整数除法/,例如:n%10表示取出n的个位数字,n/10表示去掉n的个位数字之后剩下的数字。
- 循环结束后,sum的值即为n的各位数字之和。
- 最后输出sum的值即可。
需要注意的是,在循环中,当n取完最后一位数字后,条件n>0仍然成立,此时n/10=0,循环终止。同时,为了保证程序的健壮性,可以添加对n是否为负数或超过题目范围的判断。
代码实现:
#include <iostream>
using namespace std;
int main()
{
int n, sum = 0;
cin >> n;
while (n > 0) // 循环计算各位数字之和
{
sum += n % 10;//n是个位数的时候模10等于其本身
n /= 10;//个位数除以10为0
}
cout << sum << endl; // 输出结果
return 0;
}