用C#求水仙花数问题

编程实现水仙花数。所谓水仙花数指一个三位数的整数,其各位数字立方和等于其本身,如:153=13+53+33.要求:用带有一个输入参数的方法或函数实现,返回值为布尔类型。-... 编程实现水仙花数。所谓水仙花数指一个三位数的整数,其各位数字立方和等于其本身,如:153=13+53+33.
要求:用带有一个输入参数的方法或函数实现,返回值为布尔类型。-----好像就是输入三位数,得到的结果如:153=13+53+33这样的。
展开
 我来答
Ben
推荐于2017-10-09 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部

我是做C#的

第一种方法:
using System;
class ShuiXianHua
       {
               static void Main()
               {
                        for(int i=1;i<10;i++)
                              for(int j=0;j<10;j++)
                                    for(int k=0;k<10;k++)
                                          if(i*100+j*10+k==Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3))
                                                    Console.Write("{0,5}",i*100+j*10+k);
                      Console.WriteLine();
               }
      }
第二种方法:
using System;
class ShuiXianHua
       {
            static void Main()
           {
                int i,j,k;
                for(int num = 100;num<1000;num++)
                {
                     i = num/100;        //百位数字
                     j = num%100/10;  //十位数字
                     k = num%10;        //个位数字
                    if(i*i*i+j*j*j+k*k*k == num)
                          Console.Write("{0,5}",num);
               }
               Console.WriteLine();
         }
     }
第三种方法:
using System;
class ShuiXianHua
      {
               public bool IsShuiXianHua(int num)       //定义一个函数判断一个数是否为水仙花数
              {
                   bool mark = false;
                   int i,j,k;
                   i = num/100;                    //百位数字
                   j = num%100/10;             //十位数字
                  k = num%10;                    //个位数字
                  if(i*i*i+j*j*j+k*k*k == num)
                       mark = true;
                 else
                       mark = false;
                 return mark;
               }
        }
       class Test
        {
                 static void Main()
                  {
                         ShuiXianHua sxh = new ShuiXianHua();
                         for(int n = 100;n < 1000; n++)
                         {
                               if(sxh.IsShuiXianHua(n))
                                      Console.Write("{0,5}",n);
                         }
                        Console.WriteLine();
                  }
       }
第四种方法:
using System;
class ShuiXianHua
      {
               static void Main()
               {
                      int i,j,k;
                      Console.WriteLine("水仙花数有:");
                      for(int n=100;n<1000;n++)
                      {
                             i = n/100;                           //获得百位上的数字
                             j = (n -i*100)/10;               //获得十位上的数字
                             k = n - i*100 - j*10;           //获得个位上的数字
                             if(Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3)==n)
                                   Console.Write("{0,5}",n);
                       }
                      Console.WriteLine();
                 }
      }
第五种方法:
using System;
class ShuiXianHua
       {
              static void Main()
              {
                   string s;
                   int i,j,k;
                   Console.WriteLine("水仙花数有:");
                   for(int n=100;n<1000;n++)
                   {
                         s = n.ToString();            //将数字n转化为字符串
                         i = s[0] - '0';                   //获得百位上的数字
                         j = s[1] - '0';                  //获得十位上的数字
                        k = s[2] - '0';                  //获得个位上的数字
                        if(i*i*i + j*j*j + k*k*k == n)
                            Console.Write("{0,5}",n);
                   }
                   Console.WriteLine();
              }
       }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式