使用C#语言实现输出1000以内的水仙花数

所谓水仙花数,是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身,例如:153=13+53+33。首先,我们应该解决的关键问题是,怎么通过C#语言判断一个数是不是水仙花数?既然水仙花数的定义是每个位上的数字的n次幂之和等于它本身,那么我们需要先分别得到一个数每个位上的数字,然后判断每个位上的数字的n次幂之和是否等于等于它本身。取出百位的数字可以使用 int a=i/100%10;(其中变量a存储百位数字。先将变量i中的值除以100,因为被除数和除数都是int类型的值,所以得到值的是百位及以上位的值,因为现在我们只需要得到百位的值,所以可以将其求余,就能得到百位的值,取出其他位的值可以采用类似思路。),取出十位的数字可以使用 int b=i/10%10;(其中变量b存储十位数字)。取出个位的数字可以使用 int c=i%10;(其中变量c存储个位数字)。程序的具体思路是,先使用一个for循环使变量i从100开始自增到999,当i大于999时,退出for循环,在for循环内使用上面介绍的方法得到得到各个位上的值,再使用一个if判断语句来判断其是否为水仙花数,如果是即输出该数。具体程序可参考下文代码:

for (int i = 100;i < 1000; i++)
{
int a=i/100%10;
int b=i/10%10;
int c=i%10;
if (i == a * a * a + b * b * b + c * c * c)
{
Console.WriteLine(i);
}

}
Console.ReadLine();

实现结果演示:

(最后,感谢你看到这里,新人第一次发博,如果有什么不对的地方,请大神海涵!)

posted @ 2017-05-13 23:25  黄兆瑞  阅读(7291)  评论(1编辑  收藏  举报