题目:计算该整数的各位数字之和,如果结果值是单个数字的数,那么这个数就是所求数的根;如果结果值是由两位数或两位以上的数字组成的数,则继续计算各位数字的和,直到其结果值只有一位数字为止。
输入:一个数。
输出:一个数,即该数的根即数根。
程序:
一:
#include <;
int main(void)
{
char c;
int digitroot;
digitroot = 0;
while((c = getchar()) != '\n' && c != EOF) {
digitroot += c - '0';
digitroot = digitroot % 9;
}
printf("%d\n", (digitroot == 0) ? 9 : digitroot);
return 0;
}
二:
#include <;
#include <;
int main()
{
char n[1001];
int len,i,sum = 0,num[4];
scanf("%s",n);
len = strlen(n);
for(i = 0;i < len;i++)
sum += (n[i] - '0');
while(sum > 9)
{
memset(num,0,sizeof(num));
for(i = 0;i < 4;i++)
{
num[i] = sum % 10;
sum /= 10;
}
for(i = 0;i < 4;i++) sum += num[i];
}
printf("%d",sum);
return 0;
}
方法一使用“九余数定理”,方法二将其转化为字符串处理。