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

質問編集履歴

3

コード

2020/05/21 03:33

投稿

langhtorn
langhtorn

スコア105

title CHANGED
File without changes
body CHANGED
@@ -6,12 +6,11 @@
6
6
  ./kadai09 40 45 50
7
7
  "最大公約数は0"
8
8
  ```
9
- ###可能性としては、、
9
+ ###追記5/21
10
+ 私なりにいただいた助言をもとに考えなおしてみました。でもうまくいかないです。
10
11
  ```
11
- std::atoi
12
- を習ったばかなのであまり使方がよわかってない
12
+ たいこととしては、ずargc[1]とargc[2]の最大公約数を求めて、その答えとargc[3]の最大公約数を求めるというのをどんどん繰返していく、、、とうかんじです
13
13
  ```
14
-
15
14
  ###コード
16
15
  ```C++
17
16
  #include<iostream>
@@ -19,15 +18,26 @@
19
18
  int main(int argc,char* argv[])
20
19
  {
21
20
  int maxk=0;
21
+ int ans=0;
22
- int i;
22
+ int i,j,k;
23
+ for(i=1;i<argc;i++){
23
- for(i=std::atoi(argv[1]);i>0;i--){
24
+ for(j=std::atoi(argv[i]);j>0;j--){
24
- if(std::atoi(argv[i])%i==0){
25
+ if(std::atoi(argv[i])%j==0){
25
- if(std::atoi(argv[i+1])%i==0){
26
+ if(std::atoi(argv[i+1])%j==0){
26
- maxk=i;
27
+ ans=j;
27
28
  break;
28
29
  }
29
30
  }
31
+ for(k=ans;k>0;k--){
32
+ if(ans%k==0){
33
+ if(std::atoi(argv[i+2])%k==0){
34
+ maxk=k;
35
+ break;
36
+ }
37
+ }
38
+ }
30
39
  }
40
+ }
31
41
  std::cout<<"最大公約数は"<<maxk<<"\n";
32
42
  return 0;
33
43
  }

2

2020/05/21 03:33

投稿

langhtorn
langhtorn

スコア105

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
  ###問題点
4
4
  ```
5
5
  最大公約数が違う答えになる。
6
+ ./kadai09 40 45 50
6
7
  "最大公約数は0"
7
8
  ```
8
9
  ###可能性としては、、
@@ -19,7 +20,7 @@
19
20
  {
20
21
  int maxk=0;
21
22
  int i;
22
- for(i=std::atoi(argv[0]);i>0;i--){
23
+ for(i=std::atoi(argv[1]);i>0;i--){
23
24
  if(std::atoi(argv[i])%i==0){
24
25
  if(std::atoi(argv[i+1])%i==0){
25
26
  maxk=i;

1

コードの修正

2020/05/20 15:56

投稿

langhtorn
langhtorn

スコア105

title CHANGED
File without changes
body CHANGED
@@ -28,5 +28,6 @@
28
28
  }
29
29
  }
30
30
  std::cout<<"最大公約数は"<<maxk<<"\n";
31
+ return 0;
31
32
  }
32
33
  ```