zoukankan      html  css  js  c++  java
  • 关于快乐数的算法

    本人在面试某国企的过程中被要求用手机编写快乐数算法,由于当时嫌弃麻烦所以就没写。后来在家呆着无聊想起来就写了个例子。

    快乐数的概念:在给定的进位制下,该数字所有数位(digits)的平方和,得到的新数再次求所有数位的平方和,如此重复进行,最终结果必为1。

    例子:2 8 → 2²+8²=68 → 6²+8²=100 → 1²+0²+0²=1

    以下是代码:

    
    				private
    				bool IsHappyNum(int num, List<int> lastNum)
    

            {
    

    
    					if (lastNum == null) { lastNum = new List<int>(); }
    

    
    					bool mark = true;
    

    
    					double sum = 0;
    

    
    					do
    						

                {
    

                    sum += Math.Pow(num % 10, 2);
    

    
    					if (num / 10 == 0)
    

                    {
    

                        mark = false;
    

                    }
    

                    num = num / 10;
    

                } while (mark);
    

    
    					if
    				(lastNum.Contains(Convert.ToInt32(sum))) { return
    				false; }
    

                lastNum.Add(Convert.ToInt32(sum));
    

    
    					if (sum != 1) { return IsHappyNum(Convert.ToInt32(sum), lastNum); } else { return
    					true; }
    

            }
    			

      

  • 相关阅读:
    【NOIP2017】奶酪
    【NOIP2017】时间复杂度
    【NOIP2005】过河
    【洛谷习题】垃圾陷阱
    dfs序
    bzoj2441 小W的问题
    彩色迷宫
    蛋糕与蛋挞
    树上倍增
    因数个数定理
  • 原文地址:https://www.cnblogs.com/Schme/p/9332855.html
Copyright © 2011-2022 走看看