回答編集履歴
2
誤りを修正
answer
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
連続する2つの値ですから、x + (x+1) が N の倍数ですよね。
|
2
|
-
つまり 2x+1 が N になる値を一つ見つけることができれば、あとは
|
2
|
+
つまり 2x+1 が N になる値を一つ見つけることができれば、あとは 1000000 までに何回加算できたか分かればよいのでは。
|
3
|
-
Nの倍数ですものね?)1000000 までに何回加算できたか分かればよいのでは。
|
4
3
|
|
5
4
|
で、2x+1 が N になるということは、変形して 2x = N-1 ですから、x = (N-1)/2 ですよね。
|
6
|
-
でもって、次の N の倍数、すなわち 2y+1 = 2N ですから、 2y = 2N-1 = N + N-1 より、y = N + (N-1)/2 です。つまり、y = x + N になります。
|
5
|
+
でもって、次の N の倍数を構成する2値のうち小さい方をy とすると、すなわち 2y+1 = 2N ですから、 2y = 2N-1 = N + N-1 より、y = (N/2) + (N-1)/2 です。つまり、y = x + (N/2) になります。
|
7
|
-
なので、最初の x さえ分かれば、あとは N を足していき、 x<1000000 になるまでの加算回数をカウントするだけでいいのでは。
|
6
|
+
なので、最初の x さえ分かれば、あとは N/2 を足していき、 x<1000000 になるまでの加算回数をカウントするだけでいいのでは。
|
1
修正
answer
CHANGED
@@ -2,4 +2,6 @@
|
|
2
2
|
つまり 2x+1 が N になる値を一つ見つけることができれば、あとは N を加算していって(
|
3
3
|
Nの倍数ですものね?)1000000 までに何回加算できたか分かればよいのでは。
|
4
4
|
|
5
|
-
で、2x+1 が N になるということは、変形して 2x = N-1 ですから、x = (N-1)/2 ですよね。
|
5
|
+
で、2x+1 が N になるということは、変形して 2x = N-1 ですから、x = (N-1)/2 ですよね。
|
6
|
+
でもって、次の N の倍数、すなわち 2y+1 = 2N ですから、 2y = 2N-1 = N + N-1 より、y = N + (N-1)/2 です。つまり、y = x + N になります。
|
7
|
+
なので、最初の x さえ分かれば、あとは N を足していき、 x<1000000 になるまでの加算回数をカウントするだけでいいのでは。
|