03.05 c++刷题基础篇:各位数字之和

题目描述

求输入的一个正整数的各位数字之和

输入

一行一个整数

输出

一个整数

样例输入 Copy

<code>2147483646/<code>

样例输出 Copy

<code>45/<code>

【算法分析】

对于单精度数,可以采用拆数的方法取得每一位直接累加(见程序一);对于大数据(比如整数大于21亿)可以采用字符串来处理(程序二)。

<code>//程序一 
#include <bits>
using namespace std;
int main()
{
\tint n,sum=0;
\tcin>>n;
\tfor(int i=1;n>0;i++)
\t{
\t\tsum=sum+n%10;//利用n%10循环取得每一位数字
\t\tn=n/10;
\t}
\tcout<\treturn 0;
}
////程序二
#include <bits>

using namespace std;
int main()
{
\tstring s;
\tcin>>s;
\tint sum=0;
\tfor(int i=0;i<s.size> \t{
\t\tsum+=(s[i]-'0');\t//s[i]-'0'即为每一位数字
\t}
\tcout<\treturn 0;
}

/<s.size>/<bits>
/<bits>/<code>
c++刷题基础篇:各位数字之和

程序一运行结果,适用单精度数

c++刷题基础篇:各位数字之和

程序二运行结果,测试数据超出程序一数据范围,只使用程序二


分享到:


相關文章: