快乐数的问题

判断一个数是不是快乐数?快乐数的定义为一个正整数,计算出它各位数字的平方和,得到一个新的数字,再对这个新的数字重复这一过程,直到最后得到数字1或是其他某几个数字的无限循环。在这些数字中,经过上述流程最终能得到数字1的数字,被称为“快乐数”。

据观察规律发现,不是快乐数的都会陷入到4,16,37,58,89,145,42,20,4的死循环中,也就是说出现了4这个和就不是快乐数了。

namespace 快乐数
{
    class Program
    {
        static void Main(string[] args)
        {
            CalNum(4);
            Console.ReadKey();
        }

        static void CalNum(int n)
        {
            int sum = 0;

            while (n != 0)
            {
                int i = n % 10;
                n = n / 10;
                sum += i * i;
            }
            Console.WriteLine(sum);

            if (sum == 1)
            {
                Console.WriteLine("快乐数");
                return;
            }
            else if (sum == 4) {
                Console.WriteLine("不太快乐数");
                return;
            }

            CalNum(sum);
        }
    }
}

while循环体中计算正整数n的每位数的平方和。


首页 我的博客
粤ICP备17103704号