回答編集履歴

4

疑問への回答を追加

2020/04/27 18:54

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -105,3 +105,45 @@
105
105
  詳細な説明は se_hatena2525 さんにお任せします。
106
106
 
107
107
  疑問点は質問してください。
108
+
109
+
110
+
111
+ **追記3**
112
+
113
+ > (i*i + i + 2) / 2 ←このようにシンプルにまとめる方法があったのかと感心しました。
114
+
115
+
116
+
117
+ i*(i+1) / 2 + 1 と書いても同じです。
118
+
119
+
120
+
121
+ 1 + (1/2)*(n*n) + (1/2)*n と書くと間違いです。
122
+
123
+ 1/2 は整数の割り算なので、結果は 0.5 ではなく 0 だからです。
124
+
125
+
126
+
127
+ 1 + n*n/2 + n/2 と書くのも間違いです。
128
+
129
+ n が奇数の時、割り切れず、端数の 0.5 が切り捨てられるからです。
130
+
131
+
132
+
133
+ > いまいち、どういうことが行われてるのか理解できていません。
134
+
135
+
136
+
137
+ a += d; d++; が分からないのですか?
138
+
139
+
140
+
141
+ a = a + d;
142
+
143
+ d = d + 1;
144
+
145
+ と書き換えたら分かりますか?
146
+
147
+ 数列の次の項 a は現在の項 a に公差 d を加えたものであり、
148
+
149
+ 公差 d は 1 増やします。階差数列なので。

3

" " を "" に変更

2020/04/27 18:54

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  private static String callSubject01() {
58
58
 
59
- String resultStr = " ";
59
+ String resultStr = "";
60
60
 
61
61
  int a = 1, d = 1;
62
62
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  private static String callSubject02() {
80
80
 
81
- String resultStr = " ";
81
+ String resultStr = "";
82
82
 
83
83
  for (int i = 0; i < 6 ; i++) {
84
84
 

2

追記2

2020/04/27 01:30

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -95,3 +95,13 @@
95
95
  }
96
96
 
97
97
  ```
98
+
99
+
100
+
101
+ **追記2**
102
+
103
+ すみません。詳細な説明なしにコードを提示してしまいました。
104
+
105
+ 詳細な説明は se_hatena2525 さんにお任せします。
106
+
107
+ 疑問点は質問してください。

1

コードを追加

2020/04/27 01:13

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -5,3 +5,93 @@
5
5
  初項が 7 で、公差が 3 の等差数列の先頭 6個を表示するコードを書いてくれれば、
6
6
 
7
7
  質問の階差数列のコードを書くための詳細な説明を差し上げましょう。
8
+
9
+
10
+
11
+ **追記**
12
+
13
+
14
+
15
+ コンパイル可能はコードは書いてもらえなかったようです。
16
+
17
+ 全角文字の「”」を使ったり、resultStr = i; のように int を String に
18
+
19
+ 変換できないコードを書いたりしています。
20
+
21
+
22
+
23
+ 事情はわかりました。
24
+
25
+ Androidアプリを作っているので、main も System.out.println も使わない
26
+
27
+ ということですね。
28
+
29
+
30
+
31
+ でも、単純なコードを確かめるためにも Java の基本コードを使ってください。
32
+
33
+
34
+
35
+ やり方を 2通り示します。
36
+
37
+ ```Java
38
+
39
+ class Main {
40
+
41
+ public static void main(String[] args) {
42
+
43
+ String s = callSubject01();
44
+
45
+ System.out.println(s);
46
+
47
+
48
+
49
+ s = callSubject02();
50
+
51
+ System.out.println(s);
52
+
53
+ }
54
+
55
+
56
+
57
+ private static String callSubject01() {
58
+
59
+ String resultStr = " ";
60
+
61
+ int a = 1, d = 1;
62
+
63
+ for (int i = 0; i < 6 ; i++) {
64
+
65
+ resultStr += a + " ";
66
+
67
+ a += d;
68
+
69
+ d++;
70
+
71
+ }
72
+
73
+ return resultStr;
74
+
75
+ }
76
+
77
+
78
+
79
+ private static String callSubject02() {
80
+
81
+ String resultStr = " ";
82
+
83
+ for (int i = 0; i < 6 ; i++) {
84
+
85
+ int a = (i*i + i + 2) / 2;
86
+
87
+ resultStr += a + " ";
88
+
89
+ }
90
+
91
+ return resultStr;
92
+
93
+ }
94
+
95
+ }
96
+
97
+ ```