zoukankan      html  css  js  c++  java
  • lintcode-【简单题】快乐数

    题目:

    写一个算法来判断一个数是不是"快乐数"。

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

    样例:

    19 就是一个快乐数。

    1^2 + 9^2 = 82
    8^2 + 2^2 = 68
    6^2 + 8^2 = 100
    1^2 + 0^2 + 0^2 = 1

    答案:

    一个不是【快乐数】的数字在进行每个位置上的数字平方和计算时会得到4这个值。

    代码:

     1 class Solution {
     2     
     3 public:
     4     /**
     5      * @param n an integer
     6      * @return true if this is a happy number or false
     7      */
     8     bool isHappy(int n) {
     9         // Write your code here
    10         int sum = n;
    11         
    12         while(true)
    13         {
    14             sum = numSum(sum);
    15             if(sum == 4)
    16             {
    17                 break;
    18             }
    19             
    20             if(sum == 1)
    21             {
    22                 return true;
    23             }
    24         }
    25         
    26         
    27         return false;
    28     }
    29     
    30     int numSum(int n)
    31     {
    32         int sum = 0;
    33         int x;
    34         while(n != 0)
    35         {
    36             x = n % 10;
    37             n = n /10;
    38             sum += x * x;
    39         }
    40         
    41         return sum;
    42     }
    43 };
    View Code
  • 相关阅读:
    判断js中的类型
    js数组的4种遍历方式
    js笔记
    Windows 常用 CMD 命令介绍
    css笔记
    winform项目笔记:
    Angular4 中内置指令的基本用法
    Angular4入门笔记
    8、跳台阶
    7、斐波那契数列
  • 原文地址:https://www.cnblogs.com/Shirlies/p/5210431.html
Copyright © 2011-2022 走看看