广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何用C#寻找100-999之间的水仙花数

    来源:网络收集  点击:  时间:2024-05-23
    【导读】:
    水仙花数只是自幂数的一种,严格来说是三位数的个位、十位、百位的3次幂数相加等于原来的数字,称为水仙花数。(例如:1^3 + 5^3+ 3^3 = 153)那么如何通过C#语句来解决这个问题呢?工具/原料moreVisual Studio 2012方法/步骤1/8分步阅读

    先打开Visual Studio 2012。要创建C#控制台应用程序,首先选择“文件”→“新建”→“项目”命令,打开“新建项目”对话框。

    在弹出的“新建项目”的对话框中,左边选择“已安装”下的“其他语言”下的“Visual C#”,然后在中间的列表框中选择“控制台应用程序”选项,点击“确定”。

    对打开操作不清楚的同学可以参照下面的经验。

    2/8

    想要找到百位的水仙花数,要解决的问题由两个,第一个是如何让计算机正确分离出百位数的个位、十位、百位的数字。第二个是如何将其不断循环让100到999都能经过检验。

    3/8

    第一个问题:将这个数值类型定义为整型int(这种数据类型的数字是没有小数点的)

    最高位数字——对100整除,则小数点后的数值都被强制去掉了。如153/100=1.53=1(int类型);

    最低位数字——对10取余数,153%10=3;

    中间位数字,利用上面两种方法有两种不同的解决思路。

    方法1:将其变为最高位数字再整除,先将这个数字减去100*最高位数字,则中间位则成为最高位数字,再用它对10整除,小数点被去掉了。

    如(153-100*1)/10=5.3=5(int)

    方法2:将其变为最低位数字,这个数字除以10之后,中间位的数字就变成了最低位。由于除法运算符的优先级高于求余运算符,所以括号可以省略。

    (153/10)%10=153/10%10=15%10=5

    4/8

    第二个问题:选用while或for循环结构,使得100到999都能拆开来分别来检验。

    int i=100

    while(i=999){循环体 ;i++;

    }

    for(表达式1;表达式2;表达式3)

    表达式1设置初始条件,表达式2是循环条件,表达式3是循环的调整。

    for (int i = 100; i 1000; i++)

    5/8

    应用While语句,具体语句如下:

    using System;

    public class Program

    {

    public static void Main()

    {

    int a, b, c,i=100;

    while( i 1000)

    {

    a = i / 100;

    b = (i - a * 100) / 10;

    c = i % 10;

    if (i == a * a * a + b * b * b + c * c * c)

    Console.WriteLine(i={0}, i);i++;

    }

    Console.ReadLine();

    }

    }

    6/8

    应用for语句

    具体语句如下:

    using System;

    public class Program

    {

    public static void Main()

    { int a, b, c,i=100;

    while( i 1000)

    {

    a = i / 100;

    b = (i - a * 100) / 10;

    c = i % 10;

    if (i == a * a * a + b * b * b + c * c * c)

    Console.WriteLine(i={0}, i); i++;

    }

    Console.ReadLine();

    }

    }

    7/8

    if (i == a * a * a + b * b * b + c * c * c)在这语句中是用三次连乘积表示三次方,也可以直接使用Pow的幂函数。

    using System;

    public class Program

    {

    public static void Main()

    {

    int a, b, c,i=100;

    while( i 1000)

    {

    a = i / 100;

    b = (i - a * 100) / 10;

    c = i % 10;

    if (i ==Math.Pow(a,3)+Math.Pow(b,3)+Math.Pow(c,3))

    Console.WriteLine(i={0}, i); i++;

    }

    Console.ReadLine();

    }

    }

    8/8

    输出结果百位的水仙花数:153、370、371、407

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_835543.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 08:54:58  耗时:0.028
    0.0286s