一.题目
问题描述
给定一个十进制整数n,输出n的各位数字之和。
输入格式
输入一个整数n。
输出格式
输出一个整数,表示答案。
样例输入
20151220
样例输出
13
样例说明
20151220的各位数字之和为2+0+1+5+1+2+2+0=13。
评测用例规模与约定
所有评测用例满足:0 ≤ n ≤ 1000000000。
二.基本思路
首先,这题看起来应该是不难的,这个题目的题意其实很简单,就是它输入一个十进制的数,然后对它每个位数的值进行累加,总和的值就是答案了。那么这题就是得用到字符串了,就变的很简单了,最大的值是1000000000,那么也就是最大是10个位,也就是我字符串的数组只要开十几的空间就够了,但为了安全起见,我们还是开大一些,直接就开100就好了,用gets读入之后,用一个for循环去遍历,每个字符都转换为数值,进行累加就是最终的答案。
三.算法思想
此题比较简单,没有用到什么算法,所以这步就是略写了。
四.流程
1.读入一个字符串
2.初始化一个sum=0
3.for循环遍历字符串
4.对每个字符都进行转换为数值,也就是每个字符都进行-‘0’
5.每个转换为数值之后进行累加
6.输出累加的值
五.代码实现
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
char str[100];
int sum=0;
gets(str);
for(int i=0;str[i];++i){
sum+=(str[i]-'0');
}
printf("%d\n",sum);
return 0;
}