0

我正在尝试编写这样的 if 语句

 if(denominator([(i-1)! + 1] / i)-1,print(hi),print(ho))

i可以是任何整数,例如 10。当我设置i为 10 时,会出现以下错误:

? [(x-1)! + 1] / x
  ***   this should be an integer: [(x-1)!+1]/x
                                    ^-----------

我真的只需要检查是否[(x-1)! + 1] / x 是整数。分母是我想出的,我也尝试过Mod,但也无法正常工作。

4

3 回答 3

2

您似乎对名称xi. 请看下面的表达式是否正常工作:

i = 10;
print([(i-1)! + 1] / i);
gp > [362881/10]
于 2016-04-22T21:56:40.700 回答
0

你可以使用:

print(if(((i-1)! + 1) % i, "hi", "ho"))

如果i(在您的问题中x)不是整数,则!(阶乘)运算符会出现错误(但也请参阅gamma)。

不要[]在这里使用,它会创建一个向量

我使用的运算符%给出了余数。例如11 % 4给出整数3。相比之下Mod(11, 4),它不是一个普通的整数,它是环 Z/4Z 的成员(整数模 4)。这在很多情况下都非常有用。

我想你想写出字符串,所以我使用了引号"。如果 hi 和 ho 是变量,当然省略引号。

于 2016-04-28T20:31:37.673 回答
0

我不确定错误是什么,但我最终使用了一个 floor 函数来确定它是否是一个整数。

于 2016-04-23T23:11:45.580 回答