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

質問編集履歴

5

説明

2021/06/12 16:14

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -80,14 +80,12 @@
80
80
 
81
81
 
82
82
  4頭の例
83
-
84
83
  16 0
85
84
  15 0
86
85
  11 1
87
86
  11 1
88
87
 
89
88
  4頭の例
90
-
91
89
  13 0
92
90
  12 0
93
91
  11 0
@@ -97,4 +95,13 @@
97
95
  16 0
98
96
  10 1
99
97
  9 1
100
- 5 2
98
+ 5 2
99
+
100
+ 4頭の例
101
+ 16 0
102
+ 15 0
103
+ 12 1
104
+ 11 1
105
+
106
+ ここで単純にタイム値を20以下の数字にしていますが、実際に使う場面は4桁です
107
+ 上のようになるプログラムを作りたいのです

4

追記

2021/06/12 16:14

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -26,7 +26,7 @@
26
26
  int[] z = new int[N];
27
27
  int y;
28
28
  int q;
29
-
29
+ int j;
30
30
  for(int i = 0; i < N ; i++){
31
31
  System.out.printf("タイム値を入力してください:");
32
32
  x[i] = sc.nextInt();
@@ -34,11 +34,13 @@
34
34
  //タイム値入力完了
35
35
 
36
36
  for(int i = 0; i < N; i++){
37
- y = x[i];
37
+ j = i;
38
+ while((j > 0) && (x[j-1] > x[j]){
38
- if(y > x[0]){
39
+ int temp;
39
- q = x[0];
40
+ temp = x[j-1];
41
+ x[j-1] = x[j];
40
- x[0] = y;
42
+ x[j] = temp;
41
- x[i] = q;
43
+ j--;
42
44
  }
43
45
  }
44
46
  //挿入ソート、x[0]が最大値
@@ -48,10 +50,8 @@
48
50
  for(int i = 0; i+1 <= N-1; i++){
49
51
  y = x[i];
50
52
  q = x[i+1];
51
- if(y == q){
53
+ if((y - q >= 0) && (y - q <= 3)){
52
54
  a = 0;
53
- }else if(y - q > 0 && y - q <= 3){
54
- a = 1;
55
55
  }else{
56
56
  a = 1;
57
57
  }
@@ -70,4 +70,31 @@
70
70
 
71
71
  これでやってみたんですが、数値が表示されません
72
72
 
73
- よろしくお願いします
73
+ よろしくお願いします
74
+
75
+
76
+ 階乗の出来上がり図
77
+ ソートされて、大きな数字が頭にきて
78
+ zの配列の中身が階乗のような状況になる
79
+ 3ポイント内は近似値比較を手作業でやりますのでプラス0で計算します
80
+
81
+
82
+ 4頭の例
83
+
84
+ 16 0
85
+ 15 0
86
+ 11 1
87
+ 11 1
88
+
89
+ 4頭の例
90
+
91
+ 13 0
92
+ 12 0
93
+ 11 0
94
+ 11 0
95
+
96
+ 4頭の例
97
+ 16 0
98
+ 10 1
99
+ 9 1
100
+ 5 2

3

追記

2021/06/12 16:05

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,10 @@
1
1
  仕様
2
2
  競馬の競走馬の
3
- タイムを数値化して早い方が小さい数字になるようにして多くの星を獲得するようにします
3
+ タイムを数値化して早い方が小さい数字になるようにして多くの星を正の字で数を数えるような感覚で獲得するようにします
4
4
 
5
5
  頭数を入力してタイム値をランダムに格納しますが、ソートし直して、
6
6
  星取り表を勘定して表示します、速い馬が数が多いです
7
- 速い馬は星取りの数が多くなります
7
+ 速い馬は星取りの数が多くなります(正の字の画数が多くなる、正の字で数を数えたりますね、そんな感覚です
8
8
 
9
9
  タイム値3以内は近似値比較として手でやりますので星取りは勘定しません、0です
10
10
  大きい方から星取りの数の階乗の形を保ちたいです

2

誤字

2021/06/11 14:15

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -57,7 +57,7 @@
57
57
  }
58
58
  z[i] += a;
59
59
  }
60
- //近似値比較を除く星取りの階乗表を作成、近似値比較はてさぎょうでやるしかない
60
+ //近似値比較を除く星取りの階乗表を作成、近似値比較は手作業でやるしかない
61
61
 
62
62
  for(int i = 0; i < N; i++){
63
63
  System.out.printf("%n : %n\n", x[i], z[i]);

1

書式の改善

2021/06/10 21:28

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,17 @@
1
1
  仕様
2
+ 競馬の競走馬の
2
3
  タイムを数値化して早い方が小さい数字になるようにして多くの星を獲得するようにします
3
4
 
4
5
  頭数を入力してタイム値をランダムに格納しますが、ソートし直して、
5
- 星を勘定して表示します
6
+ 取り表を勘定して表示します、速い馬が数が多いです
7
+ 速い馬は星取りの数が多くなります
6
8
 
7
- タイム値3以内は近似値比較手でやりますので星取りは勘定しません、0です
9
+ タイム値3以内は近似値比較として手でやりますので星取りは勘定しません、0です
10
+ 大きい方から星取りの数の階乗の形を保ちたいです
8
11
 
9
12
  これを以下に示しますが、なんとか正常に動くようにしたいです
10
13
 
14
+ ```Java
11
15
  import java.util.Scanner;
12
16
 
13
17
  class J_321{
@@ -53,7 +57,7 @@
53
57
  }
54
58
  z[i] += a;
55
59
  }
56
- //近似値比較を除く星取会場表を作成、近似値比較はてさぎょうでやるしかない
60
+ //近似値比較を除く星取りの階乗表を作成、近似値比較はてさぎょうでやるしかない
57
61
 
58
62
  for(int i = 0; i < N; i++){
59
63
  System.out.printf("%n : %n\n", x[i], z[i]);
@@ -61,4 +65,9 @@
61
65
 
62
66
  }
63
67
 
64
- }
68
+ }
69
+ ```
70
+
71
+ これでやってみたんですが、数値が表示されません
72
+
73
+ よろしくお願いします