在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。
比如: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<
【算法|Acwing3173. 缩位求和】
推荐阅读
- 算法|蓝桥云课 最大距离
- Linux|ROS通信——C++实现
- 蓝桥杯|蓝桥杯C/C++A组省赛历年真题题解(2013~2021)
- 蓝桥杯|蓝桥杯--鲁卡斯队列
- 蓝桥杯|蓝桥杯--凯撒加密
- 蓝桥杯|蓝桥杯--六角填数
- 算法|LeetCode Golang Hot53-最大子数组和
- 蓝桥杯省赛|2014年第五届蓝桥杯C/C++程序设计本科B组省赛 7六角填数
- leetcode|leetcode 344.反转字符串(reverse string)C语言