这是我第一次使用GP / Pari,但我无法完成此问题。
如果函数'wq()'的返回是一个整数,我被要求打印。是否有一个函数可以确定传入的数字是否为整数?如果不是我怎么去检查?我发现语法有点困难,无法在网上找到很多关于它的信息。
到目前为止,我已经包含了我所拥有的任何帮助。
wq(x) =
{
[(x-1)! + 1]/x
}
test(r,s) =
{
for (i=r, s, if(isinteger(wq(i)), print("integer"), print("not interger")));
}
答案 0 :(得分:0)
如果我理解正确,您想检查(x-1)! + 1
是x
的倍数。您可以使用模运算来执行此操作:
test(r,s) =
{
for (i=r, s, if(Mod((i - 1)! + 1, i) == 0,
print("integer"),
print("not integer")));
}
答案 1 :(得分:0)
您可以使用:
wq(x) =
{
((x-1)! + 1)/x
}
test(r,s) =
{
for (i=r, s, print(if(type(wq(i))=="t_INT", "integer", "not integer")))
}
我将[]
更改为()
,因为[]
提供了行向量(类型t_VEC
),这在此处没用。
这是另一种写作方式:
wq(x) =
{
Mod((x-1)! + 1, x)
}
test(r,s) =
{
for (i=r, s, wq(i) && print1("not "); print("integer"))
}
函数print1
打印并且"保持"在同一条线上。 '和'运算符&&
"short-circuits"。分号;
将几个表达式绑定到一个"序列"。