我没有在长生不老药中获得所需的阿姆斯壮数输出
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)
我写了代码来判断一个数字是否是 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)