#5262: C語言如何打??這樣不行??


ltcjonathan (淇)

學校 : 臺北市立建國高級中學
編號 : 18984
來源 : [114.42.224.190]
最後登入時間 :
2011-09-19 21:08:13
d887. 1.山脈種類(chain) -- 99學年度台北市資訊學科能力競賽 | From: [114.42.225.102] | 發表日期 : 2011-06-30 22:21

#include<stdio.h>
int f(int n)
{   
    if(n>1)
    return n*f(n-1);
    else
    return 1; 

int main()
{
   int a,n;
   do
   {scanf("%d",&n); 
    a=f(2*n)/(f(n)*f(n))-f(2*n)/(f(n-1)*f(n+1));   
    printf("%d\n",a);
   }while(1);   
}
 
#5267: Re:C語言如何打??這樣不行??


abcd6891 (曄哥)

學校 : 國立花蓮高級中學
編號 : 3565
來源 : [61.231.222.61]
最後登入時間 :
2024-09-16 11:43:21
d887. 1.山脈種類(chain) -- 99學年度台北市資訊學科能力競賽 | From: [114.44.214.123] | 發表日期 : 2011-07-01 21:29

#include
int f(int n)
{   
    if(n>1)
    return n*f(n-1);
    else
    return 1; 

int main()
{
   int a,n;
   do
   {scanf("%d",&n); 
    a=f(2*n)/(f(n)*f(n))-f(2*n)/(f(n-1)*f(n+1));   
    printf("%d\n",a);
   }while(1);   
}


第一點 這是無窮迴圈

 

第二點,這裡的題目如果純用函數遞迴解很容易爆記憶體。 

 
#5407: Re:C語言如何打??這樣不行??


benny30912 (綻放笑顏)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 13968
來源 : [140.120.80.131]
最後登入時間 :
2015-04-17 08:29:08
d887. 1.山脈種類(chain) -- 99學年度台北市資訊學科能力競賽 | From: [61.217.152.28] | 發表日期 : 2011-07-21 00:36

#include
int f(int n)
{   
    if(n>1)
    return n*f(n-1);
    else
    return 1; 

int main()
{
   int a,n;
   do
   {scanf("%d",&n); 
    a=f(2*n)/(f(n)*f(n))-f(2*n)/(f(n-1)*f(n+1));   
    printf("%d\n",a);
   }while(1);   
}


我用排列組合的數格子法

因為感覺用階乘很容易爆

 
ZeroJudge Forum