2011年8月2日 星期二

[ACM 10696] f91

  內容 :

McCarthy是一個有名的資訊專家。他定義了一個遞迴的函數叫做 f91 。它輸入一個正整數N並且依據以下的規則傳回一個正整數:

. 如果 N <= 100, 那麼 f91(N) = f91( f91( N+11) )

. 如果 N >= 101, 那麼 f91(N) = N-10

請你寫一個程式來計算 f91

 

輸入說明 :

每組測試資料一列。含有1個正整數 N( N <= 1000000)。輸入最多有250000組測試資料。 若 N=0 代表輸入結束。

輸出說明 :

對每組測試資料輸出一列 f91(N),。輸出格式請參考Sample Output。

範例輸入 :


500 91 0

 

範例輸出 :


f91(500) = 490 f91(91) = 91


/**********************************************************************************/
/*  Problem: c002 "f91" from ACM 10696                                            */
/*  Language: C                                                                   */
/*  Result: AC (22ms, 352KB) on ZeroJudge                                         */
/*  Author: diiuuli520 at 2008-07-17 21:45:44                                     */
/**********************************************************************************/
 
 
#include<stdio.h>
#include<stdlib.h>
 
int k(int a) 
{
    int i;
 
       if(a>100)
         return a-10;
       else
         i=k(k(a+11));
       return i; 
 }
int main(void)
    int a,b,c;
    scanf("%d",&a); 
    while(a!=0){ 
        b=k(a);             
        printf("f91(%d) = %d\n",a,b);
        scanf("%d",&a); 
        } 
}

沒有留言:

張貼留言