首先,推导一个定理
将一个二位数表示成ab,对另一个表示为cd,两者可以相等,也可以不等,a、c表示十位,b、d表示个位
那么
ab*cd=(a*10+b)*(c*10+d)=a*c*100+a*d*10+b*c*10+b*d
则 有
ab*cd=(a+b)*(c+d)
同理可证多位数。
从上面的推导,我们可以知道:
N个数相乘后的根=N个数的根相乘后该数的根
然后,再谈谈我的一个发现
当判断一个数的根的时候,只需对9取余即可,即:
当number%9==0时,根=9;
当number%9!=0时,根=number%9;
/*HDOJ1163
作者:陈佳润
2013-04-07
*/
#include<iostream>
using namespace std;
int root(int a){
if(a%9)
return a%9;
else
return 9;
}
int main(){
int t,tt,n,i;
while(cin>>n&&n){
t=root(n);
tt=1;
for(i=1;i<=n;i++){
tt*=t;
tt=root(tt);
}
cout<<tt<<endl;
}
return 0;
}