#886: 求助高手!!謝謝


te00 (te00)

學校 : 臺中市立忠明高級中學
編號 : 3518
來源 : [163.22.18.79]
最後登入時間 :
2010-03-10 00:18:08
b120. 函數計算 (Comp) -- 95學年度台北市資訊學科能力競賽 | From: [140.128.59.93] | 發表日期 : 2008-11-07 20:31

小弟已經搞了好久   第一個範例資料跟第二個都沒問題  到第三個-21的時候   他就怎樣都不跑!!><

求助高手!!謝謝

 

#include<stdio.h>
#include<stdlib.h>
int h(int);
int g(int);
int f(int);


int main(void)

{   long long int n, k;
    while(scanf("%lld",&n)!=EOF)
    {
   

    printf("%lld",f(n));
    }
    return 0;
   
}
int f(int x)
{   if     (x>h(x)) return f(x-1)-h(x);
    else if(x<h(x)) return f(g(x))-g(x);
    else            return 1;
}
int h(int y)
{   if(y<2)         return (-1);
    else            return (2+h(y-1)-h(y-2));
}
int g(int z)
{   if(z<=2)        return (z*z-1);
    else            return 2;
}

 
ZeroJudge Forum