暗号文の仮実装をした。
1に1を足して2にすることで数を最大化するようにした。
最小値に1を足して積を最大化するようにした。

n, n+1をどのように大きくするかで比較した。
(n+1)(n+1) > n(n+2)
すべて同じ数の時のテストを実装した。
n進数(3 <= n < 30)の各桁の総和を割り切れる10進数を求める問題の仮実装をした。
仮実装から本実装にした。

桁数分、ループして求めている。
桁数をループでなく、数字で指定して求められるようにした。
割られる数の一般化と、その式から各桁の総和の項を出してシンプルな実装をした。

関数ヘッダ参照。
与えられた文字列を回分にして、その長さを返す関数の仮実装をした。
長さを返すように変更した。
回分になっているかを調べ、回分でない時は文字列の長さをたすように仮実装した。
回分の判定をメンバ関数に切り出した。

リファクタリング。
回文になっていない開始位置を返す関数を実装した。

それをもとに、回分であるかを判定するように変更した。
最大長になるまで、ループしながらの実装をした。

本のサンプルコードを実装した。
ループ中に文字列長が増えるのは、回文になるように文字列を調整しているため。
文字列を受け取り、回文にして返す関数を実装した。
chapter5の途中まで(回文)をマージした。