如何使用c#筛选出三位数中所有的水仙花数

水仙花数是指一个三位数的每一位数的三次方相加等于它的本身。如何使用C#输出一个水仙花数是一个很经典的问题。

该问题的唯一难点是如何才能取出一个三位数的每一位数的值,我们知道在C#中如果你将一个除法的值定义为int变量那么该值就会直接舍弃掉小数位而只保留整数位,通过这一个特性我们可以很简单的写出以下代码从而取出三位数的每一位:

                int number1 = i % 10;//取出个位数的值
                int number2 = i / 10 % 10;//取出十位数的值
                int number3 = i / 100 % 10;//取出百位数的值            

而有了以上的基础再结合水仙花数的定义,我们可以轻松地写出以下代码:

        for (int i = 100;i < 1000 ;i++ )
            {
                int number1 = i % 10;//取出个位数的值
                int number2 = i / 10 % 10;//取出十位数的值
                int number3 = i / 100 % 10;//取出百位数的值
                if (number1 * number1 * number1 + number2 * number2 * number2+ number3 * number3  * number3 == i)
                {
                    Console.WriteLine(i);
                }
            }

最终我们可以得到结果所有的三位水仙花数有:

153 370 371 407

posted on 2017-12-10 11:56  刘国忠  阅读(564)  评论(0编辑  收藏  举报

导航