SPOJ Problem 7733:Happy Numbers I
找循环节。。或者可以知道最后肯定会到1位数,可以手动求十以内的
#include<cstdio> #include<cstring> int n; int dt(int s,int t){ int r=s,p; if(s<10&&(s!=1&&s!=7))return -1; if (s==1)return t; p=0; while(r){ p+=(r%10)*(r%10); r/=10; } dt(p,t+1); } int main(){ scanf("%d",&n); printf("%d",dt(n,0)); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。