質問編集履歴
3
プログラムを変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,6 +30,7 @@
|
|
30
30
|
よろしくお願いします。
|
31
31
|
|
32
32
|
追記部分
|
33
|
+
c=?????この??の部分だけいじるだけで実現して頂きたいです。
|
33
34
|
```C
|
34
35
|
コード
|
35
36
|
#include <stdio.h>
|
2
プログラムを追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,4 +27,40 @@
|
|
27
27
|
できるようにしたいです。
|
28
28
|
((double)(n-k+i))/((double)(k-i+1))*(double)c;のようにキャスト変更したりしたのですが
|
29
29
|
うまく値が出力されませんでした。どなたかわかる方がいらしたら教えて頂きたいです。
|
30
|
-
よろしくお願いします。
|
30
|
+
よろしくお願いします。
|
31
|
+
|
32
|
+
追記部分
|
33
|
+
```C
|
34
|
+
コード
|
35
|
+
#include <stdio.h>
|
36
|
+
#include <stdlib.h>
|
37
|
+
#include <string.h>
|
38
|
+
|
39
|
+
long combination(int n,int k){
|
40
|
+
int i;
|
41
|
+
long c=1;
|
42
|
+
for(i=1;i<=k;i++){
|
43
|
+
c=((double)(n-k+i))/((double)(k-i+1))*(double)c;
|
44
|
+
}
|
45
|
+
return c;
|
46
|
+
}
|
47
|
+
|
48
|
+
int main(void){
|
49
|
+
int n,k;
|
50
|
+
printf("plase input n ");
|
51
|
+
scanf("%d",&n);
|
52
|
+
printf("please input k ");
|
53
|
+
scanf("%d",&k);
|
54
|
+
printf("combination(%d,%d)=%ld\n",n,k,combination(n,k));
|
55
|
+
return 0;
|
56
|
+
}
|
57
|
+
```
|
58
|
+
実行結果
|
59
|
+
plase input n 13
|
60
|
+
please input k 5
|
61
|
+
combination(13,5)=546
|
62
|
+
|
63
|
+
参考までに上のコードの結果
|
64
|
+
plase input n 13
|
65
|
+
please input k 5
|
66
|
+
combination(13,5)=1287.000000
|
1
プログラムを変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
int i;
|
9
9
|
double c=1;
|
10
10
|
for(i=1;i<=k;i++){
|
11
|
-
c=(n-k+i)/(k-i+1)*c;
|
11
|
+
c=(double)(n-k+i)/(double)(k-i+1)*c;
|
12
12
|
}
|
13
13
|
return c;
|
14
14
|
}
|