码迷,mamicode.com
首页 > 编程语言 > 详细

关于快乐数的算法

时间:2018-07-18 23:25:20      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:例子   span   font   ==   list   bsp   过程   style   str   

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

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

例子:2 8 → 22+82=68 → 62+82=100 → 12+02+02=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; }
        }

 

关于快乐数的算法

标签:例子   span   font   ==   list   bsp   过程   style   str   

原文地址:https://www.cnblogs.com/Schme/p/9332855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!