题目描述
输入描述
输出描述
输出为一位数,表示反复逐位求和的结果。
输入输出样例
示例
输入
35379
输出
9
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
总通过次数: 3022 | 总提交次数: 3272 | 通过率: 92.4%
难度: 中等 标签: 2018, 模拟, 省赛
代码:
#include <iostream>
using namespace std;
// 定义函数sum,用于计算缩位求和
int sum(string s)
{
int su=0, n=0;
for(int i=0;i<s.size();i++)
n+=s[i]-'0'; // 将字符串中的每个字符转换为数字,并累加到n中
do
{
su=0;
for(int i=1;n/i!=0;i*=10)
{
int t=n/i%10; // 分解n的每一位数字
su+=t; // 将分解的数字累加到su中
}
n=su;
} while(su>=10); // 当su大于等于10时,继续进行缩位求和
return su;
}
int main()
{
int d;
string s;
cin>>s; // 输入一个长度为1000的字符串
d=sum(s); // 调用sum函数计算缩位求和
cout<<d<<endl; // 输出结果
return 0;
}