参考自:Hdu-1163 Eddy's digital Roots(九余数定理) - 飘过的小牛 - 博客频道 - CSDN.NET
九余数定理:一个数的每位数字之和等于这个数对9取余,如果等于0就是9
Hdu 1163 Eddy's digital Roots
题意:给定一个正整数,根据一定的规则求出该数的“数根”,其规则如下:
例如给定 数字 24,将24的各个位上的数字“分离”,分别得到数字 2 和 4,而2+4=6;
因为 6 < 10,所以就认为6是数字24的“数根”;
而对于数字 39 , 将39的各个位上的数字“分离”,分别得到数字 3 和 9,而3+9=12,且12>10;
所以依据规则再对 12 进行相应的运算,最后得到数字3,而3<10,所以就认为3是数字39的“数根”。
通过运算可以发现任何一个数的“数根”都是一个取值范围在 1 ~ 9之间的正整数,
且任何一个正整数都只有唯一的一个“数根”与其相对应。
题目要求数字 n^n 的“数根”
#include <cstdio>
int main ()
{
int n;
while (scanf("%d",&n),n)
{
int tmp=n;
for (int i=2;i<=n;i++)
tmp=tmp*n%9;
printf("%d\n",tmp==0?9:tmp);
}
return 0;
}
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=485
#include <cstdio>
int main ()
{
int T;
scanf("%d",&T);
while (T--)
{
long long a,b,tmp;
scanf("%lld%lld",&a,&b);
if (a==0 || b==0)
{
printf("0\n");
continue;
}
tmp=(a%9)*(b%9)%9;
printf("%lld\n",tmp==0?9:tmp);
}
return 0;
}