teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

微修正

2019/04/20 05:55

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -13,12 +13,12 @@
13
13
  int count;
14
14
 
15
15
  void a(void) {
16
+ ++count;
16
- for(int i=0;i<n;i++) {
17
+ for(int i=0;i<n;i++) {
17
- ++count;
18
- t++;
18
+ t++;
19
- if(t <4) a();
19
+ if(t <4) a();
20
+ }
20
21
  }
21
- }
22
22
 
23
23
  int main() {
24
24
  for (n = 1; n < 10; ++n ) {;

2

追記

2019/04/20 05:55

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -1,3 +1,45 @@
1
1
  n がどこにもないのでコンパイル・エラー。
2
2
 
3
- ... n > 4 だったら止まらないんじゃないコレ?
3
+ ... n > 4 だったら止まらないんじゃないコレ?
4
+
5
+ [修正後あらためまして]
6
+
7
+ n を増やしつつ、a()が何度呼ばれるか調べてみた。
8
+ ```C
9
+ #include <stdio.h>
10
+
11
+ int t = 1;
12
+ int n = 5;
13
+ int count;
14
+
15
+ void a(void) {
16
+ for(int i=0;i<n;i++) {
17
+ ++count;
18
+ t++;
19
+ if(t <4) a();
20
+ }
21
+ }
22
+
23
+ int main() {
24
+ for (n = 1; n < 10; ++n ) {;
25
+ t = 1;
26
+ count = 0;
27
+ a();
28
+ printf( "n= %d\t count= %d\n", n, count);
29
+ }
30
+ }
31
+
32
+ /* 実行結果
33
+ n= 1 count= 3
34
+ n= 2 count= 6
35
+ n= 3 count= 9
36
+ n= 4 count= 12
37
+ n= 5 count= 15
38
+ n= 6 count= 18
39
+ n= 7 count= 21
40
+ n= 8 count= 24
41
+ n= 9 count= 27
42
+ */
43
+ ```
44
+
45
+ ふむ、呼ばれる回数が処理時間と比例するだろうから、計算時間量は O(n) みたいね。

1

加筆

2019/04/20 05:34

投稿

episteme
episteme

スコア16612

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