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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一片白 中级黑马   /  2014-5-10 14:44  /  1599 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一片白 于 2014-5-12 10:16 编辑

将100-999间的水仙花数打印到控制台。
水仙花数:只存在于百位数字之中,如果这个百位数字的百位的立方加上十位的立方加上各位的立方等于当前这个百位数字的话,则这个数字为水仙花数。例:153就是一个水仙花数,1*1*1+5*5*5+3*3*3=153。
:@:@

6 个回复

倒序浏览
  1. for(int i=100;i<=999;i++)
  2. {
  3.      int  b=i/100;//百位数字
  4.      int  s=(i%100)/10;//十位数字;
  5.      int  g=i%10;//个位数字
  6. if(b*b*b+s*s*s+g*g*g==i)
  7. {
  8. Console.WriteLine(i)
  9. }

  10. }
  11. Console.ReadKey();
复制代码

评分

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

查看全部评分

回复 使用道具 举报
你要是要代码 还是要结果啊
算了 代码结果都上了吧

    class Program
    {
        static void Main(string[] args)
        {
            for (int iNum = 100; iNum <= 999; iNum++)
            {
                if (IsdaffodilNum(iNum))
                {
                    Console.WriteLine("{0} 是水仙数",iNum);
                }
            }

            Console.ReadKey();
        }
        /// <summary>
        /// 判断是否是水仙数
        /// </summary>
        /// <param name="num">用户传入的参数</param>
        /// <returns></returns>
        public static bool IsdaffodilNum(int num)
        {
            try
            {
                int hundreds = 0;//百位数
                int deckle = 0;//十位数
                int unit = 0;//个位数

                if (num >= 100 && num <= 999)
                {
                    hundreds = num / 100;
                    deckle = (num/10) % 10;
                    unit = num % 10;
                }

                if (GetCube(hundreds) + GetCube(deckle) + GetCube(unit) == num)//如果符合水仙数的要求就返回true
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                throw new Exception("输入的不是有效数字");
            }
        }

       /// <summary>
       /// 获取输入数的立方
       /// </summary>
       /// <param name="num"></param>
       /// <returns></returns>

        public static int GetCube(int num)
        {
            return num * num * num;
        }
    }


结果.PNG (41.61 KB, 下载次数: 34)

结果.PNG

评分

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

查看全部评分

回复 使用道具 举报 1 0
static void Main(string[] args)
        {
            for (int i = 100; i <= 999; i++)
            {
                int gewei = i % 10;
                int shiwei = i / 10 % 10;
                int baiwei = i / 100;
                if (i == gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei)
                {
                    Console.WriteLine(i);
                }
            }
            Console.ReadKey();

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 /fendou 于 2014-5-10 18:44 编辑

class Program
    {
        static void Main(string[] args)
        {
            for (int iNum = 100; iNum <= 999; iNum++)
            {
                if (IsdaffodilNumEx(iNum))
                {
                    Console.WriteLine("{0} 是水仙数",iNum);
                }
            }

            Console.ReadKey();
        }

        public static int GetNumCube(int num)
        {
            string strNum = Convert.ToString(num);
            int result = 0;
            for(int i = 0; i < strNum.Length;i++)
            {
//ToInt32是将strNum转换成了数字对应的ASCII码
                result += GetCube(Convert.ToInt32(strNum));
            }
            return result;
        }

        /// <summary>
        /// 判断是否是水仙数
        /// </summary>
        /// <param name="num">用户传入的参数</param>
        /// <returns></returns>
        public static bool IsdaffodilNumEx(int num)
        {
            try
            {
                if (GetNumCube(num) == num)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                throw new Exception("输入的不是有效数字");
            }
        }

        /// <summary>
        /// 判断是否是水仙数
        /// </summary>
        /// <param name="num">用户传入的参数</param>
        /// <returns></returns>
        public static bool IsdaffodilNum(int num)
        {
            try
            {
                int hundreds = 0;//百位数
                int deckle = 0;//十位数
                int unit = 0;//个位数

                if (num >= 100 && num <= 999)
                {
                    hundreds = num / 100;
                    deckle = (num/10)%10;
                    unit = num % 10;
                }

                if (GetCube(hundreds) + GetCube(deckle) + GetCube(unit) == num)//如果符合水仙数的要求就返回true
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                throw new Exception("输入的不是有效数字");
            }
        }

       /// <summary>
       /// 获取输入数的立方
       /// </summary>
       /// <param name="num"></param>
       /// <returns></returns>

        public static int GetCube(int num)
        {

//因为传过来的是数字对应的ASCII码
            if (num >= 48 && num <= 57)
            {
                num -= 48;
            }
            return num * num * num;
        }


再试试这个 呵呵

评分

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

查看全部评分

回复 使用道具 举报
result += GetCube(Convert.ToInt32(strNum[i]));
发上去怎么少了[i]了

回复 使用道具 举报
基础测试题,很简单的逻辑,自己练习哦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马