戻り値を使いまわしたら基本的に再帰なんだよってはじめに書いておいた