中国建设行业峰会网站建设asp网站视频教程
web/
2025/9/28 7:23:19/
文章来源:
中国建设行业峰会网站,建设asp网站视频教程,网络营销的具体措施,wordpress js版编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为#xff1a;
对于一个正整数#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1#xff0c…编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为
对于一个正整数每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1那么这个数就是快乐数。
如果 n 是 快乐数 就返回 true 不是则返回 false 。
思路一找规律
c语言解法
bool isHappy(int n){while(n10){int k0;while(n0){kpow(n%10,2);nn/10;}nk;}if(n1||n7){return true;}else{return false;}
}
分析
本题要判断是否为快乐数根据快乐数的定义可以列举几个例子找规律。最后找出当个位数为1或7时可验证为快乐数
思路二双指针快慢指针
c解法
class Solution {
public:int bitSquareSum(int n) {int sum 0;while(n 0){int bit n % 10;sum bit * bit;n n / 10;}return sum;}bool isHappy(int n) {int slow n, fast n;do{slow bitSquareSum(slow);fast bitSquareSum(fast);fast bitSquareSum(fast);}while(slow ! fast);return slow 1;}
};分析
除找规律外还可使用快慢指针的思想利用指针相遇时判断是否为1循环则可判断是否为快乐数注意两个指针需先移动再判断否则可能出现错误
总结
本题考察对双指针的应用利用找规律的方法或快慢指针均可做出此题快慢指针即两个不同速度指针判断是否有循环符合要求则输出答案
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83201.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!