试题编号: | 201512-1 |
试题名称: | 数位之和 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
给定一个十进制整数
n,输出
n的各位数字之和。
输入格式
输入一个整数
n。
输出格式
输出一个整数,表示答案。
样例输入
20151220
样例输出
13
样例说明
20151220的各位数字之和为2+0+1+5+1+2+2+0=13。
评测用例规模与约定
所有评测用例满足:0 ≤
n ≤ 1000000000。
|
解题思路:
这道题其实相较于其他第一题来说,可能复杂一点点。首先我们想一下如何提取一个数字的各位数字之和,难道我们一开始就全部都提取了然后再求和吗?其实不需要的,因为我们可以进行一次“压缩”,我们可以将x(代指输入十进制数字)x%10就可以提取个位数,然后进行求和。之后x=x/10,相当于“缩”了1位,此时再%10求出
此时的个位实际上是原始数字的十位数。
一直这样子做直到x等于0终止
代码展示
#include<iostream>
using namespace std;
int main()
{
int n=0;
while(cin>>n)
{
int sum=0;
for(int tmp=0;n>0;n=n/10)
{
tmp=n%10;
sum=sum+tmp;
}
cout<<sum<<endl;
}
}