2017年11月11日 星期六

[C_MM48-易] F91(C++)

[C_MM48-易] F91

問題描述 :
知名資訊理論學家McCarthy定義了一個名為f91的遞迴函數。該函數輸入一個正整數n,並且依據下列規則運算:
1. 如果 n ≤ 100, 則 f91( n ) = f91( f91( n+11) )
2. 如果 n ≥ 101, 則 f91( n ) = n-10 請撰寫程式計算 f91( n )。

輸入說明 :
程式的輸入包含兩行數字,第一行包含一個正整數k,1 ≤ k ≤ 10,代表第二行有k個測試資料n1, n2, ..., nk,1 ≤ ni ≤ 100000,而此k個正整數間以空格隔開。
輸出說明 :
輸出k列答案,針對每一個測試資料ni,輸出答案f91(ni) 。
範例 :

Sample Input:Sample Output:
3
5 80 1000
91
91
990
  1. #include <iostream>  
  2.   
  3. using namespace std;  
  4. int k, n;  
  5.   
  6. int factorial(int n)  
  7. {  
  8.     if(n <= 100)  
  9.     {  
  10.         return(factorial(factorial(n+11)));  
  11.     }  
  12.     else if(n >= 101)  
  13.     {  
  14.         return(n-10);  
  15.     }  
  16. }  
  17.   
  18. int main() {  
  19.     // [C_MM48-易] F91  
  20.     cin >> k;  
  21.     for(int i = 0;i < k;i++)  
  22.     {  
  23.         cin >> n;  
  24.         cout << factorial(n) << endl;  
  25.     }  
  26.       
  27.     return 0;  
  28. }  

沒有留言:

張貼留言