描述:
求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;
题目类别: 数组
难度: 初级
运行时间限制: 10Sec
内存限制: 128MByte
阶段: 入职前练习
输入:
输入任意一个或多个整数
输出:
输出各位数字之和,直到和为个位数为止(输入异常,则返回-1)
多行,每行对应一个输入数据的结果。
样例输入:
25
865
样例输出:
7
求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;
题目类别: 数组
难度: 初级
运行时间限制: 10Sec
内存限制: 128MByte
阶段: 入职前练习
输入:
输入任意一个或多个整数
输出:
输出各位数字之和,直到和为个位数为止(输入异常,则返回-1)
多行,每行对应一个输入数据的结果。
样例输入:
25
865
样例输出:
7
1
#include <iostream>
using namespace std;
int main()
{
int index = 0;
int sum = 0;
int temp,i=0;
while(cin>>temp)
{
if(temp <= 0)
{
cout<<-1;
return -1;
}
sum = 0;
while(temp)
{
sum = sum + temp % 10; //取出每一位数字,求和
temp /= 10;
if(sum >= 10 && temp == 0) //当和>=10时,则把当前和赋给temp,继续求每位数字之和
{
temp = sum;
sum = 0;
continue;
}
}
cout<<sum<<endl;
}
return 0;
}