标签:
找循环节。。或者可以知道最后肯定会到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)); }
SPOJ Problem 7733:Happy Numbers I
标签:
原文地址:http://www.cnblogs.com/moris/p/4339776.html