[恢]hdu 1163

2011-12-23 09:17:14

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1163

题意:求n^n的数字根。

mark:数字根其实就是9的余数。数论知识,n>6的时候,pow(n,n) = pow(n%9, n%6+6)。

代码:

# include <stdio.h>


int pow(int a, int b)
{
int i, ans = 1 ;
for (i = 0 ;i < b ; i++)
ans = ans * a % 9 ;
return ans % 9 ;
}

int main ()
{
int n, ans ;
while (~scanf ("%d", &n) && n)
{
if (n < 6)
ans = pow(n,n) ;
else
ans = pow(n%9, n%6+6) ;
if (ans == 0) ans = 9 ;
printf ("%d\n", ans) ;
}
return 0 ;
}



原文地址:https://www.cnblogs.com/lzsz1212/p/2315334.html