@songpfei
2016-04-19T10:00:54.000000Z
字数 418
阅读 1372
OJ_算法
描述:
求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;
题目类别: 数组
难度: 初级
运行时间限制: 10Sec
内存限制: 128MByte
阶段: 入职前练习
输入:
输入任意一个或多个整数
输出:
输出各位数字之和,直到和为个位数为止(输入异常,则返回-1)
多行,每行对应一个输入数据的结果。
样例输入:
25
865
样例输出:
7
1
#include<stdio.h>
int NumberRoot(int n)
{
if (n <= 0)
return -1;
else if (n < 10)
return n;
else
{
int root = 0;
while (n)
{
root += n % 10;
n = n / 10;
if (n == 0 && root > 9)
{
n = root;
root = 0;
}
}
return root;
}
}
int main()
{
int n;
while (scanf("%d", &n) == 1)
{
printf("%d\n", NumberRoot(n));
}
return 0;
}