闲话系列:每日一题,秃头有我,Hello!!!!!,我是IF‘Maxue,欢迎大佬们来参观我写的蓝桥杯系列,我好久没有更新博客了,因为up猪我寒假用自己的劳动换了台新电脑,没用父母的钱哦!!!,虽然进度慢了,但是值得,蓝桥杯快开始了,所以我也开始努力起来了。同时,我也欢迎各位大佬互三,看到我会及时回复的!!!
我们仔细观察,在最后的结尾,
> - 慢指针每次后移一步,快指针每次后移两步 让慢指针一次进行一次操作,让快指针进行2次快乐数操作 - 判断相遇的值 - 直接判断相遇的值
证明这道题:
int HappyC(int n)//快乐数的操作
{ int x=0;
int sum=0;
while(n)
{
x=n%10;
sum=x*x+sum;
n=n/10;
}
return sum;
}
bool isHappy(int n) {
//定义两个快慢指针,用数字代替
int fast=0;
int slow=0;
slow=n,fast=n;
while(1)
{
fast=HappyC(fast);
fast=HappyC(fast);
slow=HappyC(slow);
if(fast==slow)
{
if(fast==1)
{
return true;
}
else
{
return false;
}
}
}
}
运行结果展示: