質問編集履歴
3
コード
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,17 +14,15 @@
|
|
14
14
|
|
15
15
|
```
|
16
16
|
|
17
|
-
###
|
17
|
+
###追記5/21
|
18
|
+
|
19
|
+
私なりにいただいた助言をもとに考えなおしてみました。でもうまくいかないです。
|
18
20
|
|
19
21
|
```
|
20
22
|
|
21
|
-
std::atoi
|
22
|
-
|
23
|
-
|
23
|
+
やりたいこととしては、まずargc[1]とargc[2]の最大公約数を求めて、その答えとargc[3]の最大公約数を求めるというのをどんどん繰り返していく、、、というかんじです。
|
24
24
|
|
25
25
|
```
|
26
|
-
|
27
|
-
|
28
26
|
|
29
27
|
###コード
|
30
28
|
|
@@ -40,21 +38,43 @@
|
|
40
38
|
|
41
39
|
int maxk=0;
|
42
40
|
|
43
|
-
int
|
41
|
+
int ans=0;
|
44
42
|
|
45
|
-
|
43
|
+
int i,j,k;
|
46
44
|
|
47
|
-
|
45
|
+
for(i=1;i<argc;i++){
|
48
46
|
|
49
|
-
|
47
|
+
for(j=std::atoi(argv[i]);j>0;j--){
|
50
48
|
|
49
|
+
if(std::atoi(argv[i])%j==0){
|
50
|
+
|
51
|
+
if(std::atoi(argv[i+1])%j==0){
|
52
|
+
|
51
|
-
|
53
|
+
ans=j;
|
52
54
|
|
53
55
|
break;
|
54
56
|
|
55
57
|
}
|
56
58
|
|
57
59
|
}
|
60
|
+
|
61
|
+
for(k=ans;k>0;k--){
|
62
|
+
|
63
|
+
if(ans%k==0){
|
64
|
+
|
65
|
+
if(std::atoi(argv[i+2])%k==0){
|
66
|
+
|
67
|
+
maxk=k;
|
68
|
+
|
69
|
+
break;
|
70
|
+
|
71
|
+
}
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
}
|
58
78
|
|
59
79
|
}
|
60
80
|
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
```
|
8
8
|
|
9
9
|
最大公約数が違う答えになる。
|
10
|
+
|
11
|
+
./kadai09 40 45 50
|
10
12
|
|
11
13
|
"最大公約数は0"
|
12
14
|
|
@@ -40,7 +42,7 @@
|
|
40
42
|
|
41
43
|
int i;
|
42
44
|
|
43
|
-
for(i=std::atoi(argv[
|
45
|
+
for(i=std::atoi(argv[1]);i>0;i--){
|
44
46
|
|
45
47
|
if(std::atoi(argv[i])%i==0){
|
46
48
|
|
1
コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,6 +58,8 @@
|
|
58
58
|
|
59
59
|
std::cout<<"最大公約数は"<<maxk<<"\n";
|
60
60
|
|
61
|
+
return 0;
|
62
|
+
|
61
63
|
}
|
62
64
|
|
63
65
|
```
|