问题描述
给定一个十进制整数n,输出n的各位数字之和。
输入格式
输入一个整数n。
输出格式
输出一个整数,表示答案。
样例输入
20151220
样例输出
13
样例说明
20151220的各位数字之和为2+0+1+5+1+2+2+0=13。
评测用例规模与约定
所有评测用例满足:0 ≤ n ≤ 1000000000。
c语言版本
#include<stdio.h>
#include<math.h>
int main(){
long long n;
scanf("%lld",&n);
long long a=n;
int b=0;
while(a){
a=a/10;
b++;
}
int i,arr[b];
for(i=0;i<b;i++){
arr[i]=n/pow(10,b-i-1);
arr[i]=arr[i]%10;
}
int sum=0;
for(i=0;i<b;i++){
sum+=arr[i];
}
printf("%d",sum);
}
要点 | |
1.数字要求大,使用long long 去定义数据类型 | |
2.先去把每个未知数都放在一个数组内,再去算出数组之和 | 最重要是如何去所给的数去分开 |
数去分开:先用whilex循环,求出该数有多少位,-》以便得出需要定义多长的数组
n/pow(10,b-i-1)%10,即可得出.
python版本:
n=input()
a=list(n)
sum=0
for i in a:
sum+=int(i)
print(sum)
python版本比较简单熟悉数据,列表,字符串,整形,并且python中不需要考虑接受数据类型过大的问题。
- input()如果不加,则默认字符串
- 将n(字符单个拆分)变成a列表
- 遍历整个列表,遍历的同时,转成整形,相加