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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王朋 中级黑马   /  2013-5-22 18:53  /  1740 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王朋 于 2013-5-22 19:17 编辑

什么是水仙花数?怎么用代码进行判断

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

4 个回复

倒序浏览
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)  
现在假设n=3
通过 循环 百位 十位 个位  判断 是否满足 百位^3+ 十位^3+个位^3 =这个数

上代码: for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    for (int k = 0; k < 10; k++)
                    {
                        if (i*i*i+j*j*j+k*k*k==i*100+j*10+k)
                        {
                            Console.WriteLine(i * 100 + j * 10 + k);
                        }
                    }
                }
            }

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 mosuge7 于 2013-5-22 19:35 编辑

水仙花数:
如果a*a*a+b*b*b+c*c*c=cba,那么cba就是水仙花数,其中c b a代表百位、十位、各位的数字。
判断一个数是否为水仙花谁:
           Console.WriteLine("请输入一个数");
            int i = Convert.ToInt32(Console.ReadLine());
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100;
            if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai)
            {
                Console.WriteLine("{0}是水仙花数", i);
            }

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
好吧 为了这题 忙活 一晚上 这是我的 解题思路:http://www.cnblogs.com/rufus-hua/archive/2013/05/22/3093858.html

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
  1. Console.WriteLine("请输入一个数");
  2. int i = Convert.ToInt32(Console.ReadLine());
  3. int bai = i % 100;//取得百位上的数字
  4. int shi = (i - bai*100) % 10;//得到十位上的数字
  5. int ge = (i -bai* 100-shi*10)%10;//个位上的数字
  6. if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai)//由if语句判断i是不是水仙花数
  7. {
  8.       Console.WriteLine("{0}是水仙花数", i);
  9. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马