做网站可不可以模仿,wordpress文章查看量,广东建设资格注册中心网站,视频网站应该怎么做题目#xff1a; 编写一个算法来判断一个数n是不是快乐数。
快乐数的定义#xff1a; 对于一个正整数#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过…题目 编写一个算法来判断一个数n是不是快乐数。
快乐数的定义 对于一个正整数每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true 不是则返回 false 。 示例 1 输入n 19 输出true 示例 2 输入n 2 输出false
示例 3 输入n 5 输出false
解析 使用快指针和慢指针如果快指针追上了慢指针说明进入了循环 如果循环值为1则为快乐数。
示例源码
// Len_IsHappy.cpp : 定义控制台应用程序的入口点。
//#include stdafx.hint NextData(int n)
{int data 0;while (n 0){int ge n % 10;data ge * ge;n n / 10;}return data;
}bool isHappy(int n)
{int slow n;int fast n;do{slow NextData(slow);fast NextData(NextData(fast));} while (slow ! fast);return slow 1;
}
void PrintStr(int n, bool bResult)
{ // nprintf(\nn %d, n);// resultprintf(\nbResult %s\n, (bResult ! 0) ? (true) : (false));}int _tmain(int argc, _TCHAR* argv[])
{int n 19;bool bResult isHappy(n);PrintStr(n, bResult);n 2;bResult isHappy(n);PrintStr(n, bResult);n 5;bResult isHappy(n);PrintStr(n, bResult);return 0;
}
执行结果