質問編集履歴

3

ご指摘いただいた点を変更したつもりです。プログラム以前に日本語の間違いなどもありましたら、教えていただけると助かります。

2019/12/25 23:59

投稿

boxod-9116
boxod-9116

スコア4

test CHANGED
@@ -1 +1 @@
1
- ネイピア数eの小数点以下の桁数をできるだけ多く求めるには?
1
+ ネイピア数eの小数点以下の桁数をできるだけ多く求めるにはどうすればよいですか
test CHANGED
@@ -56,6 +56,10 @@
56
56
 
57
57
  C言語において、ネイピア数eの小数点以下の桁数をできるだけ多く求めて表示する関数を作ろうと考えています。
58
58
 
59
+ 追記:
60
+
61
+ 桁数をできるだけ多くとは、double以上の精度かつ、小数点以下の桁数が例えば500桁まで求めるこができることを指します。
62
+
59
63
  以下にソースコードの一部を載せておきます。
60
64
 
61
65
  ### 発生している問題・エラーメッセージ
@@ -64,7 +68,9 @@
64
68
 
65
69
  ```
66
70
 
71
+ 1/n!のn!が配列で表現されているとき、1/n!をどのようにして計算するかを教えていただきたいです。具体的にはn! = A[3]A[2]A[1]であるとき、1/n! = 1 / A[3]A[2]A[1] の計算の仕方を知りたいです。例えば、これを近似する式が存在していたり、式をうまく分割することができたりするといった感じに。(このままでは桁数が多くなると計算ができなくなってしまうので)
72
+
67
- 1/n!のn!が配列で表現されているとき、1/n!をどのようにし計算す教えていただきたいです。
73
+ n!が配列で表現されているとは、n!が配列A[N]で表されるとき、n!=A[N-1]A[N-2]・・・A[0]となっこと指します。
68
74
 
69
75
  ```
70
76
 

2

2019/12/25 23:59

投稿

boxod-9116
boxod-9116

スコア4

test CHANGED
File without changes
test CHANGED
@@ -20,31 +20,33 @@
20
20
 
21
21
 
22
22
 
23
- for(k = 2; k <= t; k++){
23
+ for(k = 2; k <= t; k++){
24
24
 
25
- for(i = 0; i < L; i++){
25
+ for(i = 0; i < L; i++){
26
26
 
27
- copy[i] = ans[i];
27
+ copy[i] = ans[i];
28
-
29
- }
30
-
31
- for(n = 1; n <= g+1; n++){
32
-
33
- ans[n] = ans[n]*k + carry;
34
-
35
- carry = ans[n]/10;
36
-
37
- if(carry != 0){
38
-
39
- ans[n] = ans[n]%10;
40
-
41
- if((n+1) > g)
42
-
43
- g = n+1;
44
28
 
45
29
  }
46
30
 
31
+ for(n = 1; n <= g+1; n++){
32
+
33
+ ans[n] = ans[n]*k + carry;
34
+
35
+ carry = ans[n]/10;
36
+
37
+ if(carry != 0){
38
+
39
+ ans[n] = ans[n]%10;
40
+
41
+ if((n+1) > g)
42
+
43
+ g = n+1;
44
+
47
45
  }
46
+
47
+ }
48
+
49
+ }
48
50
 
49
51
  }
50
52
 

1

ソースコードを貼り直しました

2019/12/25 10:09

投稿

boxod-9116
boxod-9116

スコア4

test CHANGED
File without changes
test CHANGED
@@ -1,24 +1,6 @@
1
- ### 前提・実現したいこと
1
+ ```C
2
2
 
3
- 初投稿です。プログラミングを一ヶ月ほどになります。
4
-
5
- C言語において、ネイピア数eの小数点以下の桁数をできるだけ多く求めて表示する関数を作ろうと考えています。
6
-
7
- 以下にソースコードの一部を載せておきます。
8
-
9
- ### 発生している問題・エラーメッセージ
10
-
11
-
12
-
13
- ```
3
+ コード
14
-
15
- 1/n!のn!が配列で表現されているとき、1/n!をどのようにして計算するか
16
-
17
- ```
18
-
19
-
20
-
21
- ### 該当のソースコード
22
4
 
23
5
  void kaizyou(int *x){ //階乗したい数 x! Lはマクロで宣言済み
24
6
 
@@ -42,33 +24,47 @@
42
24
 
43
25
  for(i = 0; i < L; i++){
44
26
 
45
- copy[i] = ans[i];
27
+ copy[i] = ans[i];
46
28
 
47
29
  }
48
30
 
49
31
  for(n = 1; n <= g+1; n++){
50
32
 
51
- ans[n] = ans[n]*k + carry;
33
+ ans[n] = ans[n]*k + carry;
52
34
 
53
- carry = ans[n]/10;
35
+ carry = ans[n]/10;
54
36
 
55
- if(carry != 0){
37
+ if(carry != 0){
56
38
 
57
- ans[n] = ans[n]%10;
39
+ ans[n] = ans[n]%10;
58
40
 
59
- if((n+1) > g)
41
+ if((n+1) > g)
60
42
 
61
- g = n+1;
43
+ g = n+1;
62
-
63
- }
64
44
 
65
45
  }
66
46
 
67
- }
47
+ }
68
48
 
69
- ```c言語
49
+ }
70
50
 
51
+ ```### 前提・実現したいこと
52
+
53
+ 初投稿です。プログラミングを一ヶ月ほどになります。
54
+
55
+ C言語において、ネイピア数eの小数点以下の桁数をできるだけ多く求めて表示する関数を作ろうと考えています。
56
+
71
- ソースコード
57
+ 以下にソースコードの一部を載せておきます。
58
+
59
+ ### 発生している問題・エラーメッセージ
60
+
61
+
62
+
63
+ ```
64
+
65
+ 1/n!のn!が配列で表現されているとき、1/n!をどのようにして計算するかを教えていただきたいです。
66
+
67
+ ```
72
68
 
73
69
 
74
70