回答編集履歴

3

微修正

2019/04/20 05:55

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -28,15 +28,15 @@
28
28
 
29
29
  void a(void) {
30
30
 
31
- for(int i=0;i<n;i++) {
31
+ ++count;
32
32
 
33
- ++count;
33
+ for(int i=0;i<n;i++) {
34
34
 
35
- t++;
35
+ t++;
36
36
 
37
- if(t <4) a();
37
+ if(t <4) a();
38
38
 
39
- }
39
+ }
40
40
 
41
41
  }
42
42
 

2

追記

2019/04/20 05:55

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -3,3 +3,87 @@
3
3
 
4
4
 
5
5
  ... n > 4 だったら止まらないんじゃないコレ?
6
+
7
+
8
+
9
+ [修正後あらためまして]
10
+
11
+
12
+
13
+ n を増やしつつ、a()が何度呼ばれるか調べてみた。
14
+
15
+ ```C
16
+
17
+ #include <stdio.h>
18
+
19
+
20
+
21
+ int t = 1;
22
+
23
+ int n = 5;
24
+
25
+ int count;
26
+
27
+
28
+
29
+ void a(void) {
30
+
31
+ for(int i=0;i<n;i++) {
32
+
33
+ ++count;
34
+
35
+ t++;
36
+
37
+ if(t <4) a();
38
+
39
+ }
40
+
41
+ }
42
+
43
+
44
+
45
+ int main() {
46
+
47
+ for (n = 1; n < 10; ++n ) {;
48
+
49
+ t = 1;
50
+
51
+ count = 0;
52
+
53
+ a();
54
+
55
+ printf( "n= %d\t count= %d\n", n, count);
56
+
57
+ }
58
+
59
+ }
60
+
61
+
62
+
63
+ /* 実行結果
64
+
65
+ n= 1 count= 3
66
+
67
+ n= 2 count= 6
68
+
69
+ n= 3 count= 9
70
+
71
+ n= 4 count= 12
72
+
73
+ n= 5 count= 15
74
+
75
+ n= 6 count= 18
76
+
77
+ n= 7 count= 21
78
+
79
+ n= 8 count= 24
80
+
81
+ n= 9 count= 27
82
+
83
+ */
84
+
85
+ ```
86
+
87
+
88
+
89
+ ふむ、呼ばれる回数が処理時間と比例するだろうから、計算時間量は O(n) みたいね。

1

加筆

2019/04/20 05:34

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1 +1,5 @@
1
1
  n がどこにもないのでコンパイル・エラー。
2
+
3
+
4
+
5
+ ... n > 4 だったら止まらないんじゃないコレ?