我一直在准备竞争性考试,我遇到了这个问题。我尝试为它编写代码。但是根据给出的选项我没有得到答案。我得到的输出是超时。请帮我找到正确的答案
对于输入 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
我一直在准备竞争性考试,我遇到了这个问题。我尝试为它编写代码。但是根据给出的选项我没有得到答案。我得到的输出是超时。请帮我找到正确的答案
对于输入 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
我用 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
.
相当于你的 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 >= 100 然后返回 x-10”,并且你输入任何低于 100 的数字,它总是会返回 90。
我用以下代码在 python 中运行了你的答案,答案是 91:
def fun(x):
if(x >100):
return x-10
else:
return fun(fun(x+11))
print (fun(95))