鱼C论坛

 找回密码
 立即注册
查看: 810|回复: 0

[技术交流] C++刷leetcode(202. 快乐数)【数据结构】

[复制链接]
发表于 2020-4-18 13:08:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 糖逗 于 2020-5-8 17:56 编辑

题目描述:
  1. 编写一个算法来判断一个数 n 是不是快乐数。

  2. 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为  1,那么这个数就是快乐数。

  3. 如果 n 是快乐数就返回 True ;不是,则返回 False 。

  4.  

  5. 示例:

  6. 输入:19
  7. 输出:true
  8. 解释:
  9. 12 + 92 = 82
  10. 82 + 22 = 68
  11. 62 + 82 = 100
  12. 12 + 02 + 02 = 1

  13. 来源:力扣(LeetCode)
  14. 链接:https://leetcode-cn.com/problems/happy-number
  15. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码



  1. #include <iostream>
  2. #include <map>
  3. #include <algorithm>
  4. #include <string>


  5. using namespace std;


  6. bool isHappy(int n) {

  7.     map<int, int> store;
  8.    
  9.     while(n != 1){
  10.         int temp = 0;
  11.         string temp1 = to_string(n);
  12.         for(int i = 0; i < temp1.size(); i++){
  13.             temp += pow(temp1[i]-'0', 2);
  14.         }
  15.         store[temp]++;
  16.         if(store[temp] > 1) return false;
  17.         n = temp;
  18.         
  19.     }
  20.     return true;
  21. }

  22. int main(void){
  23.         int input;
  24.         cin >> input;
  25.         cout <<  isHappy(input) << endl;
  26.        
  27.         return 0;
  28. }
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 02:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表