首先,推导一个定理
将一个二位数表示成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;
}
本文推导了一个数学定理,并利用该定理提出了一个判断数根的方法。通过实例代码展示了如何在编程中应用这一发现。
&spm=1001.2101.3001.5002&articleId=8770309&d=1&t=3&u=aa6d75b30cfd4a90b08810126b1132b3)
1782

被折叠的 条评论
为什么被折叠?



