回答竞争性考试问题

时间:2013-01-07 12:45:01

标签: language-agnostic

我一直在为竞争性考试做准备,我遇到了这个问题。我试着为它编写代码。但是根据给出的选项,我没有得到答案。我得到的输出是超时的。  请帮我找到正确的答案

输入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

3 个答案:

答案 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))