-3

私は競争試験の準備をしていて、この質問に出くわしました。そのためのコードを書いてみました。しかし、私は与えられたオプションに従って答えを得ることができませんでした。私が得た出力はタイムアウトでした。正しい答えを見つけるのを手伝ってください

次の関数は、入力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です。

4

3 に答える 3

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

于 2013-01-07T12:50:24.860 に答える
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> = 100の場合はx-10を返す」に変更し、100未満の数値をフィードすると、常に90が返されます。

于 2013-01-07T13:05:22.967 に答える
0

私はあなたの答えを次のコードでPythonで実行しました、答えは91でした:

    def fun(x):
        if(x >100):
            return x-10
        else:
            return fun(fun(x+11))

    print (fun(95))
于 2015-12-06T06:40:16.650 に答える