中文:
正整数的数字根是通过对整数的数字求和来找到的。如果结果值是一位数,则该位数是数字根。如果结果值包含两个或多个数字,则将这些数字相加并重复该过程。只要获得一个位数就可以继续进行。
例如,考虑正整数24。将2和4相加得到值6。因为6是一位数,所以6是24的数字根。现在考虑正整数39。将3和9相加得到12。由于12不是一位数,因此必须重复该过程。将1和2的乘积3相加,一位数字,还有39的数字根。
思路:
因为这个是足够大,所以不能用int,选择用char,因此在求和时需要-48,
只需求出各个位的和在求它与9的余数即可(若被9整除则输出9)
#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char a[1000];
int l,i,j,sum=0;
while(scanf("%s",&a)!=EOF)
{
sum=0;
if(strcmp(a,"0")==0)
{
return 0;
}
l=strlen(a);
for(i=0;i<l;i++)
{
sum=sum+a[i]-'0';
}
if(sum%9==0)printf("9\n");
if(sum%9!=0)printf("%d\n",sum%9);
}
return 0;
}