2013-01-07 107 views
-4

我一直在爲競爭性考試做準備,並且遇到了這個問題。我試着爲它編寫代碼,但根據給出的選項我沒有得到答案。我得到的輸出超時。 請幫我找到正確的答案答案爲競爭性考試問題

下面的函數對輸入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

+2

在其中的編程語言你寫你的榜樣?請將此標籤添加到您的帖子中。 – reporter

+0

如果我在精神上工作,我會得到91. –

+0

你可以用任何程序語言來試用它@reporter –

回答

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)); 

結果是:

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.

0

我跑在Python你的答案與下面的代碼,得到的答覆是91:

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

    print (fun(95))