Acwing3173. 缩位求和

在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。

比如:248×15=3720

把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是 1 位数,得

2 + 4 + 8 = 14 ==> 1 + 4 = 5;
1 + 5 = 6
5 * 6

而结果逐位求和为 3

5∗6 的结果逐位求和与 3 符合,说明正确的可能性很大!!(不能排除错误)

请你写一个计算机程序,对给定的字符串逐位求和。

输入格式

一个由数字组成的串,表示 nn 位数。

输出格式

一位数,表示反复逐位求和的结果。

数据范围

1≤n≤1000

输入样例1:

35379

输出样例1:

9

输入样例2:

7583676109608471656473500295825

输出样例2:

1
#include 
#include 
#include 

using namespace std;

int main()
{
    string s;
    int sum , t;
    cin >> s;
    for (int i = 0; i < s.size(); i ++ ){
         sum=sum+(int)(s[i]-'0');
        }
     while(sum>=10){//分离位数法 
        t=sum;
        sum=0;//每次循环前sum归零
        while(t!=0){
            sum=sum+t%10;//t%10得到每一个个位 
            t=t/10;
        }
    }
    cout<

 

你可能感兴趣的:(算法,蓝桥杯,c++,字符串,求数位)