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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵刘滨 中级黑马   /  2012-8-13 17:28  /  1384 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是水仙花数?如何输出所有三位数的水仙花数?

评分

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

查看全部评分

4 个回复

倒序浏览
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
我写的winform判断3位水仙花数的应用程序,可以参考下
  1. int i,a, b, c, t;
  2.             i = Convert.ToInt32(textBox1.Text);
  3.             { t=i;
  4.             a = t % 10; t = t / 10; b = t % 10; c = t / 10;
  5.             if (a * a * a + b * b * b + c * c * c ==i)
  6.                 label2.Text = "该数是水仙花数";
  7.             else
  8.                 label2.Text = "该数不是水仙花数";
复制代码

评分

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

查看全部评分

回复 使用道具 举报
输出所有 3位水仙花数如下,可以以此方法算出其他的位数的,理论上,最大的水仙花数不超过34位

  1.             int i,a,b,c,t;
  2.             for(i=100;i<1000;i++)
  3.             {
  4.                 t=i;
  5.                 a = t % 10; t = t / 10; b = t % 10; c = t / 10;
  6.                  if (a * a * a + b * b * b + c * c * c ==i)
  7.                  {
  8.                      Console.WriteLine("{0}",i);
  9.                  }

  10.             }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
1L正解
for (int i = 100; i < 1000; i++)
  {
  int bai = 0;
  int shi = 0;
  int ge = 0;
  int baiyushu = 0;
  bai = i / 100;
  baiyushu = i % 100;
  shi = baiyushu / 10;
  ge = baiyushu % 10;
  if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge)
  {
  Console.WriteLine("水仙花数:" + i + "<br>");
  }
  }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
以下为100到999内的水仙花数:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace _06水仙花数
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             for (int i = 100; i <= 999; i++)
  12.             {
  13.                 int a = i % 10;
  14.                 int b =i/10 % 10;
  15.                 int c = i / 10 / 10;
  16.                 int sum=a*a*a+b*b*b+c*c*c;
  17.                 if (sum == i)
  18.                 {
  19.                     Console.WriteLine(sum);
  20.                 }
  21.             }
  22.             Console.ReadKey();
  23.         }
  24.     }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马