@chawuciren
2018-10-14T05:31:30.000000Z
字数 872
阅读 742
leetcode
bool isHappy(int n){
int result=0;
do{
result+=(n%10)*(n%10);
n/=10;
}while(n!=0);
if(result==1)
return true;
if(result==4)
return false;
result=isHappy(result);
}
int happy(int n)
{
int i=0;
int a=1;
int b=0;
int x=1;
int y=0;
int z=0;
for(i=0;i<=20;i++)
{
if(n/a==0)
break;
else
{
b+=1;
a=a*10;
}
}
for(b=b-1;b>=0;b--)
{
x=1;
if(b==0)
{
x=1;
}
else
{
for(i=0;i<b;i++)
x=x*10;
}
y=n/x;
z+=y*y;
n=n%x;
}
return z;
}
int isHappy(int n)
{
int x=0;
for(;;)
{
n=happy(n);
if(n!=1)
{
x+=1;
if(x>=100)
return false;
}
if(n==1)
return true;
}
bool isHappy(int n)
{
int a=1;
int b=0;
int x=1;
int y=0;
int result=0;
for(int i=0;i<=20;i++)
{
if(n/a==0)
break;
else
{
b+=1;
a=a*10;
}
}
for(b=b-1;b>=0;b--)
{
x=1;
if(b==0)
x=1;
else
{
for(int i=0;i<b;i++)
x=x*10;
}
y=n/x;
result+=y*y;
n=n%x;
}
if(result==1)
return true;
if(result==4)
return false;
result = isHappy(result);
return;
}
在此输入正文