hdu 1163 Eddy's digital Roots (数学)

点击打开链接

ab*ab=(10*a+b)*(10*a+b)=100*a*a+10*2*a*b+b*b=a*a+2*a*b+b*b=(a+b)*(a+b)

abc*abc=(100*a+10*b+c)*(100*a+10*b+c)

               =10000*a*a+2000*a*b+100*b*b+200*a*c+20*b*c+c*c

               =a*a+2*a*b+b*b+2*a*c+2*b*c+c*c

               =(a+b)^2+2*c*(a+b)+c*c

              = (a+b+c)*(a+b+c)

同理可以知道四位数,五位数也一样,

即n*n的数根=n的数根*n的数根

数论当中有个结论:“某数乘积的九余数=等于该数九余数的乘积”当余数为0时,该数为九。

#include"stdio.h"
int main()
{
	int i,n,sum;
	while(scanf("%d",&n)!=EOF&&n!=0)
	{
		sum=1;
		for(i=0;i<n;i++)
			sum=(sum*n)%9;
		if(sum==0)
			printf("9\n");
		else
			printf("%d\n",sum);
	}
	return 0;
}


原文地址:https://www.cnblogs.com/yyf573462811/p/6365156.html