我没有在长生不老药中获得所需的阿姆斯壮数输出

I'm not getting desired output for Armstrong number in elixir

我写了代码来判断一个数字是否是 Armstrong 数字。 如果每个数字的立方之和等于数字本身,则正整数称为 Armstrong 阶数 n。 例如:

153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3 // 153 is an Armstrong number.

defmodule IsArmstrong do
    def cube(number) do
        :math.pow(number, 3) |> round
    end

    def digit_cube_sum(number) do
        Enum.sum(Enum.map(Integer.digits(number), &cube/1))
    end

    def is_armstrong(number) do
        if number == &digit_cube_sum/1 do
            IO.puts("Armstrong number")
        else
            IO.puts("Not an armstrong number")
        end
    end
end

无论我给出多少数字作为参数,我总是得到 "Not an Armstrong number"。帮我找 代码哪里错了。

这里,

number == &digit_cube_sum/1

您正在将数字 number 与函数 digit_cube_sum/1 进行比较。
它们永远不相等。

您需要使用适当的参数调用函数并与结果进行比较,

number == digit_cube_sum(number)