/ Vijos / 讨论 / 问答 /

数字根(root.cpp)求高人指点,编的对否?

问题描述:
定义f(n)为正整数n的各位数字之和,当f(n)>=10时,继续进行f(f(n))…的计算,直到它是一位数,并记它是n的数字根。例如987的数字根是6。输入一个正整数n(≤109),计算它的数字根。
输入格式:
仅一个正整数n(n≤109)。
输出格式:
仅一个正整数表示n的数字根。
样例输入:
12345
样例输出:
6

#include <stdio.h>
int main(){
freopen("list.in","r",stdin);
freopen("list.out","w",stdout);
unsigned long long s,i,a,b,now;
scanf("%d",&s);
a=b=1;
for(i=1;i<=s;i++)
{

if (a*2<b*3) {now=a*=2;}
else
{
now=b*=3;
}
}
printf("%u",now);
return 0;
}

2 条评论

  • 1