我一直在为竞争性考试做准备,我遇到了这个问题。我试着为它编写代码。但是根据给出的选项,我没有得到答案。我得到的输出是超时的。 请帮我找到正确的答案
输入x = 95时,以下函数返回什么值?
Function fun (x:integer):integer;
Begin
If x > 100 then fun : x – 10
Else fun : fun(fun (x + 11))
End;
选项是 (a)89(b)90(c)91(d)92
答案 0 :(得分:3)
我在JAVA中做到了这一点:
public static int test(int x){
if (x > 100){
return x-10;
}// then fun : x – 10
else {
return test(test(x+11));
}//fun : fun(fun (x + 11))
}
System.out.println(test(95));
结果是:
91
答案 1 :(得分:2)
相当于c ++中的程序
#include <cstdio>
int fun(int x)
{
if (x > 100)
{
return x-10;
}
else
{
return fun(fun(x+11));
}
}
int main()
{
printf("%i", fun(95));
return 0;
}
输出:
91
虽然您可以轻松地在“如果x> 100然后返回x-10”这一行找到答案。如果您输入任何低于100的数字,它总是输出91.如果您将其更改为“如果x&gt; = 100然后返回x-10”并且您使用100以下的任何数字将其输入,则它将始终返回90. / p>
答案 2 :(得分:0)
我在python中用以下代码运行你的答案,答案是91:
def fun(x):
if(x >100):
return x-10
else:
return fun(fun(x+11))
print (fun(95))