题目
描述:
求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;
题目类别:
数组
难度:
初级
运行时间限制:
10Sec
内存限制:
128MByte
阶段:
入职前练习
输入:
输入任意一个或多个整数
输出:
输出各位数字之和,直到和为个位数为止(输入异常,则返回-1)
多行,每行对应一个输入数据的结果。
样例输入:
25
865
样例输出:
7
1
代码
/*---------------------------------------
* 日期:2015-07-01
* 作者:SJF0115
* 题目:数字基root
* 来源:华为机试练习题
-----------------------------------------*/
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <list>
using namespace std;
int NumRoot(int num){
if(num < 0){
return -1;
}//if
if(num < 10){
return num;
}//if
int sum = 0;
while(num){
sum += num % 10;
num /= 10;
}//while
NumRoot(sum);
}
int main(){
int num;
while(cin>>num){
cout<<NumRoot(num)<<endl;
}//while
return 0;
}