[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) 。
範例 :
知名資訊理論學家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 |
- #include <iostream>
- using namespace std;
- int k, n;
- int factorial(int n)
- {
- if(n <= 100)
- {
- return(factorial(factorial(n+11)));
- }
- else if(n >= 101)
- {
- return(n-10);
- }
- }
- int main() {
- // [C_MM48-易] F91
- cin >> k;
- for(int i = 0;i < k;i++)
- {
- cin >> n;
- cout << factorial(n) << endl;
- }
- return 0;
- }
沒有留言:
張貼留言