| 试题编号: | 201512-1 |
|---|---|
| 试题名称: | 数位之和 |
| 时间限制: | 1.0s |
| 内存限制: | 256.0MB |
| 问题描述: | 问题描述 给定一个十进制整数n,输出n的各位数字之和。 输入格式 输出一个整数,表示答案。 样例输入 20151220 样例输出 13 样例说明 20151220的各位数字之和为2+0+1+5+1+2+2+0=13。 评测用例规模与约定 所有评测用例满足:0 ≤ n ≤ 1000000000。 |
说明:此题要注意一点的就是题目给定的n的范围大小,所以我们可以用double型来表示n的类型。刚开始用的int类型,并不满足所有的测试用例,得分90分,用double来表示输入的值n,此题得满分。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double n;
cin>>n;
int count=1;//代表n的位数
double l=n;
while((l/10)>1)
{
count++;
l=l/10;
}
//div表示除数,mod表示余数。刚开始用取模运算(%)求余数,出现“表达式类型必须具有整数或者未区分范围的枚举类型”错误。
int div=n/(pow(10,count-1)),mod=n-div*pow(10,count-1);
int sum=div;
for(int i=2;i<=count;i++)
{
div=mod/(pow(10,count-i));
mod=mod-div*pow(10,count-i);
sum+=div;
}
cout<<sum;
return 0;
}
本文介绍了一种计算任意整数各个位数之和的方法。使用C++编程语言,通过循环和数学运算处理输入的整数,实现了有效的数位求和算法。特别注意了输入整数的范围限制。
1515

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



