C/C++の宿題を片付けます 68代目
■ このスレッドは過去ログ倉庫に格納されています
0046デフォルトの名無しさん
2006/06/25(日) 20:07:51gcc で確認。
#include <stdio.h>
int fact(int) ;
int choose(int,int) ;
int main(void) {
int n,r ;
printf("N?") ;
scanf("%d",&n) ;
printf("R?") ;
scanf("%d",&r) ;
printf("Choose!%d\n",choose(n,r)) ;
return(0) ;
}
int fact(int n) {
return((n==0)? 1:n*fact(n-1)) ;
}
int choose(int n,int r) {
int res ;
if(r==1) res=n ;
else if(r==n || r==0)res=1 ;
else res = (fact(n)/(fact(r)*(fact(n-r)))) ;
return(res) ;
}
範囲のチェックとかしてないから、大きな数になると落ちる(^^;
そこら辺は対応ヨロシコ。
■ このスレッドは過去ログ倉庫に格納されています