描述:
求整数的Root:给定正整数,求每位数字之和,如果和不是一位数,则重复;输入任意一个活多个整数,
输出各位数字之和,如果输入不为正整数,输出-1。
分析:
当数的和不为一位数时,继续求和的各位数之和。
代码如下:
#include <stdio.h>
int Sumdigit(int n)
{
int temp = 0;
while (n)
{
temp = temp + n%10;
n = n/10;
}
return temp;
}
int main()
{
int n;
while (scanf("%d",&n) != EOF)
{
if (n <= 0)
{
printf("%d\n", -1);
}
else
{
while (n >= 10)
{
n = Sumdigit(n);
}
printf("%d\n" , n);
}
}
return 0;
}
求整数的Root:给定正整数,求每位数字之和,如果和不是一位数,则重复;输入任意一个活多个整数,
输出各位数字之和,如果输入不为正整数,输出-1。
分析:
当数的和不为一位数时,继续求和的各位数之和。
代码如下:
#include <stdio.h>
int Sumdigit(int n)
{
int temp = 0;
while (n)
{
temp = temp + n%10;
n = n/10;
}
return temp;
}
int main()
{
int n;
while (scanf("%d",&n) != EOF)
{
if (n <= 0)
{
printf("%d\n", -1);
}
else
{
while (n >= 10)
{
n = Sumdigit(n);
}
printf("%d\n" , n);
}
}
return 0;
}