C言語なら、俺に聞け! <29>
■ このスレッドは過去ログ倉庫に格納されています
0830フレッシャーズ
NGNG//分母の代入・分母の積
bunbo[1] = bunbo1 = 1;
for (i = 2; i <= ipt; i++){
bunbo[i] = bunbo[i - 1] * i;
bunbo1 *= bunbo[i]; ←この行で掛け合わせるのは駄目でしょ。
} ここのアスタリスクは取りなさい。上の行で掛け算しているんだから。
元の処理だと二重の階乗にしているのかな?
iptが大きな数なら100,行く前に、intとかlongとか超えると思う。環境にも拠るのだろうけれど。
もう少し上限を小さくした方が良いと思う。
long m=1l,n=1l,ipt;/*m,iptはintでも可 nはどうだろ?*/
double sum_dt=0.0;
scanf("%ld",&ipt);
while(m<=ipt){
sum_dt += (1.0/n);
n*=(m+1);
m++;
//printf("<%ld,%ld>%lf\n",n,m,sum_dt);
}
printf("%lf",sum_dt);
じゃだめなの?
■ このスレッドは過去ログ倉庫に格納されています