2014年7月13日 星期日

uva 10696 f91

照著題目的意思把遞迴式寫出來即可。

如果要加快速度,可以把算出來的值記錄起來,下次遇到同樣的數字時,就可以不用再遞迴

下去,直接回傳值。



#include <stdio.h>
#include <stdlib.h>

int table[10000000]={0};

int f91(int num){
    if(table[num]!=0){
        return table[num];
    }

    if(num <= 100){
        table[num]=f91(f91(num+11));
        return table[num];
    }else{
        table[num]=num-10;
        return table[num];
    }

    return;
}

int main(void){
    int num;

    while(scanf("%d",&num)==1){
        if(num==0) break;

        printf("f91(%d) = %d\n",num,f91(num));
    }


    return 0;
}

沒有留言:

張貼留言