質問編集履歴

2

数式画像が間違っていたため訂正

2020/04/19 02:40

投稿

xebme
xebme

スコア1081

test CHANGED
File without changes
test CHANGED
@@ -134,7 +134,7 @@
134
134
 
135
135
  ここまではわかっています。18桁までの回文数は以下の式で求められます。
136
136
 
137
- ![組合せ数](5b2417b703caafce3f5e082c6ffab194.png)
137
+ ![組合せ数](2e63350f7552fe83e516ce8d6cc67d2d.png)
138
138
 
139
139
 
140
140
 

1

桁数から回文数の個数を求める(追記)

2020/04/19 02:40

投稿

xebme
xebme

スコア1081

test CHANGED
File without changes
test CHANGED
@@ -121,3 +121,49 @@
121
121
 
122
122
 
123
123
  質問のどれかに答えていただいても、解法の一部でも、ヒントでも構いません。
124
+
125
+
126
+
127
+
128
+
129
+ ###
130
+
131
+ **桁数から回文数の個数を求める(追記)**
132
+
133
+
134
+
135
+ ここまではわかっています。18桁までの回文数は以下の式で求められます。
136
+
137
+ ![組合せ数](5b2417b703caafce3f5e082c6ffab194.png)
138
+
139
+
140
+
141
+ ```Java
142
+
143
+ /**
144
+
145
+ * 桁数nを与えて、1桁からn桁までの回文数の個数を返す。
146
+
147
+ * @param n 桁数 (1以上)
148
+
149
+ * @return 回文数の個数
150
+
151
+ */
152
+
153
+ static long countPalindromics_(int n) {
154
+
155
+ if (n <= 0) {
156
+
157
+ throw new IllegalArgumentException("nは1以上です。");
158
+
159
+ }
160
+
161
+ long acc = IntStream.rangeClosed(1, n).mapToLong(i -> (long) Math.pow(10, (i-1)/2) * 9l).sum();
162
+
163
+ return acc + 1;
164
+
165
+ }
166
+
167
+ ```
168
+
169
+ この知識を前提にすれば、n のうち、1000000000000000000 <= m < Long.MAX_VALUE までの m に含まれる回文数の個数を求めたい。