题目描述
求输入的一个正整数的各位数字之和
输入
一行一个整数
输出
一个整数
样例输入 Copy
2147483646
样例输出 Copy
45
【算法分析】
对于单精度数,可以采用拆数的方法取得每一位直接累加(见程序一);对于大数据(比如整数大于21亿)可以采用字符串来处理(程序二)。
//程序一
#include <bits/stdc .h>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
for(int i=1;n>0;i )
{
sum=sum n;//利用n循环取得每一位数字
n=n/10;
}
cout<<sum;
return 0;
}
////程序二
#include <bits/stdc .h>
using namespace std;
int main()
{
string s;
cin>>s;
int sum=0;
for(int i=0;i<s.size();i )
{
sum =(s[i]-'0'); //s[i]-'0'即为每一位数字
}
cout<<sum;
return 0;
}
程序一运行结果,适用单精度数
程序二运行结果,测试数据超出程序一数据范围,只使用程序二