05/11/22 04:02:57
>前から順に読んで現れた数字より大きい数字を全てデクリメントしていくやり方
それでいいんでね?
(1)result=0で初期化
*ここで、1~Nの整数が、適当に並べ替えられて並んでいたとして、
(2)N=1ならresult+1を返し終了。
(3)左端の数aに対し (a-1)*(N-1)! を計算し、resultに加算。
(4)列の中で、aより大きい要素は全て1だけ減らす(小さい要素はいじらない)。
(5)先頭のaを切り落とし(N=N-1)、残った列に対し*に戻る。