精易论坛

标题: 水仙花数 再发一遍 就当加深印象了 [打印本页]

作者: 呓语丶    时间: 2020-11-15 23:32
标题: 水仙花数 再发一遍 就当加深印象了

水仙花数是什么

  • 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
  • 例如:1^3 + 5^3+ 3^3 = 153
  • 百d百科 : 水仙花数
  • 昨天刚学C++ 接触到这个  觉得挺有意思
  • 发出来就当给自己加深印象了
  • 大佬勿喷,如果你要喷.....
  • 8年祖安人,无惧{:5_304:}



  1. void 水仙花数()
  2. {

  3.         //1.先打印所有三位数字
  4.         int num = 100;
  5.         do
  6.         {
  7.                 //2.从所有三位数中找到水仙花数
  8.                 int a = 0;//个位
  9.                 int b = 0;//十位
  10.                 int c = 0;//百位

  11.                 a = num % 10; // 获取数字的个位
  12.                 b = num / 10 % 10;// 获取数字的十位
  13.                 c = num / 100;//获取数字的百位
  14.                 /*
  15.                 1、VB里面求幂的运算符是“^”

  16.                 2、C++没有求幂的运算符,

  17.                 c++头文件加 #include<math.h>
  18.                 使用pow(x,y),可算出x的y次幂

  19.                 */

  20.                 if (pow(a, 3) + pow(b, 3) + pow(c, 3) == num)//如果是水仙花数  再打印
  21.                 {
  22.                         cout << num << endl;

  23.                 }
  24.         
  25.                 num++;

  26.         } while (num < 1000);
  27.         
  28. }
复制代码




  
子程序名返回值类型公开备 注
水仙花数  
变量名类 型静态数组备 注
num整数型 
a整数型 
b整数型 
c整数型 
num = 0
.while (num < 1000)
a = 0
b = 0
c = 0
a = num % 10
b = num ÷ 10 % 10
c = num ÷ 100
.if (pow (a, 3)pow (b, 3)pow (c, 3) = num)
输出调试 (num)

num = num + 1
.wend ()


i支持库列表   支持库注释   
e2eeE2EE互联网服务器套件

作者: 易路前行    时间: 2020-11-16 00:48
下面我加一个C#的源码-----------------水仙花,看看一不一样
//求水仙花数 百位十位个位的立方相加等于这个数
            //求100 - 999的水仙花数
            for (int i = 100; i <= 999; i++)
            {
                int baiwei = i / 100;
                int shiwei = i % 100 / 10;
                int gewei = i % 10;
                if (baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei == i)
                {
                    Console.WriteLine("水仙花数为{0}", i);
                }

            }
            Console.ReadKey();
        }

作者: haoyunlai    时间: 2020-11-16 08:05

作者: 外星星人    时间: 2020-11-16 13:47
支持开源。
作者: 女娲    时间: 2020-11-16 23:13
黑马的课啊
作者: dangerace    时间: 2020-11-17 09:20
唯一一个问题,这个算法看起来不复杂,为啥要加载一个e2ee的互联网服务器套件?主要使用到其什么功能?
作者: YeSilin    时间: 2020-11-17 10:02
下面是golang的代码
  1. func main() {
  2.         // 水仙花数,一个三位数,各个位数的立方和等于这个数本身
  3.         for i := 100; i <= 999; i++ {
  4.                 // 抽出百位
  5.                 a := i / 100
  6.                 // 抽出十位
  7.                 b := i / 10 % 10 // b:= i % 100 / 10
  8.                 // 抽出个位
  9.                 c := i % 10
  10.                 if a*a*a+b*b*b+c*c*c == i {
  11.                         fmt.Println(i)
  12.                 }
  13.         }
  14. }
复制代码

作者: Cplusplus    时间: 2020-11-17 15:14
凑个热闹,python 代码
  1. print(list(filter(lambda s: int(s) == int(s[0])**3+int(s[1])**3+int(s[2])**3, map(str, range(100,1000)))))
复制代码

作者: 呓语丶    时间: 2020-11-17 16:34
dangerace 发表于 2020-11-17 09:20
唯一一个问题,这个算法看起来不复杂,为啥要加载一个e2ee的互联网服务器套件?主要使用到其什么功能? ...

e2ee的输出调试    用习惯了  没用核心支持库的输出调试文本
作者: 292951863    时间: 2020-11-29 13:50

作者: ghost12    时间: 2022-2-3 17:00
很好很强悍,坚持下去哦~




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4