照著題目的意思把遞迴式寫出來即可。
如果要加快速度,可以把算出來的值記錄起來,下次遇到同樣的數字時,就可以不用再遞迴
下去,直接回傳值。
#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;
}
沒有留言:
張貼留言