pythonで謎を解く
pythonで本の破れたページ以外のページ合計から
破れたページを導く問題を解く
左開きの本の最初のページは開いて右側のページで1ページとする前提
破れたページ以外のページの合計:9500
([sum(range(1,i)) for i in range(1,200) if sum(range(1,i))>=9500][0]-9500-1)/2 -> 45
破れたページは、45、46ページ
解き方までの道のり
9500以上の合計数字の最初の数字から最終ページと破れたページの合計に当てをつける
最終ページ:138
全ページの合計:9591
[f'{i-1}:{sum(range(1,i))}' for i in range(1,200) if sum(range(1,i))>=9500][0] -> '138:9591'
全ページの合計から破れたページ以外のページの合計を引く
9591-9500=91
破れた数字のページは2ページで最初のページは1ページなので、破れたページの合計は奇数になる
(91-1)/2=45 -> 45、46ページとなる
検算
破れたページまでのページの合計
sum(range(1,45)) -> 990
破れたページあとのページの合計
sum(range(47,138+1)) -> 8510
990+8510=9500
