A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 特洛伊 中级黑马   /  2013-11-6 22:32  /  1375 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求编写一个水仙花数的程序,要求用嵌套循环。

3 个回复

倒序浏览
这个貌似用不着嵌套循环呀:
  1. //编写一个程序,输出所有的水仙花数(水仙花数为一个三位数,
  2.             //他各个位数上的立方和等于该数本身)
  3.             
  4.             for (int i = 100; i < 1000; i++)
  5.             {
  6.                 int single = i % 10;
  7.                 int ten = (i / 10) % 10;
  8.                 int hundred = i / 100;
  9.                 if (single * single * single + ten * ten * ten + hundred * hundred * hundred == i)
  10.                 {
  11.                     Console.WriteLine(i);
  12.                 }
  13.             }
  14.             //运行结果:153 370 371 407
复制代码
回复 使用道具 举报
     三层嵌套循环:


      static void Main(string[] args)
        {
            int i, j, k;
            for(i=1;i<=9;i++)
                for(j=0;j<=9;j++)
                    for(k=0;k<=9;k++)
                        if (100 * i + 10 * j + k== i * i * i + j * j * j + k * k * k)
                        {
                            Console.Write("{0}  ,",(100 * i + 10 * j + k).ToString());
                        }
        }
回复 使用道具 举报
//个位的立方加上十位的立方再加上百位的立方等于这个数本身,此数叫作水仙花数
            for (int i = 100; i <= 999; i++)
            {
                int hundred = i / 100;    //取得百位上的数
                int decade = i / 10 % 10; //取得十位上的数
                int unit = i % 10;        //取得个位上的数
                if ((hundred * hundred * hundred + decade * decade * decade + unit * unit * unit) == i)
                {
                    Console.Write("水仙花{0,5}",i);
                }
            }

            for (int hundred = 1; hundred <= 9; hundred++)   //第一层for循环,循环百位数,百位数必须0<hundred<=9
            {
                for (int decade = 0; decade <= 9; decade++) //第二层for循环,循环十位数,十位数必须0<=decade<=9
                {
                    for (int unit = 0; unit <= 9; unit++)   //第三层for循环,循环个位数,个位数必须0<=unit<=9
                    {
                        if ((hundred * hundred * hundred + decade * decade * decade + unit * unit * unit) == (hundred * 100 + decade * 10 + unit))
                        {
                            Console.Write("水仙花{0,5}", hundred * 100 + decade * 10 + unit);
                        }
                    }
                }
            }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马