これは古典的なプログラミングの問題であることを理解しています。したがって、解決策としてコードを探しているわけではないことを明確にしたいと思いますが、正しい方向へのプッシュに感謝します。私は C++ を学んでおり、学習プロセスの一環として、いくつかのプログラミングの問題に取り組んでいます。10 億の階乗までの数を処理するプログラムを作成しようとしています。明らかに、これらは膨大な数になり、通常の算術演算を使用するには大きすぎます。この種の問題を解決するためにどの方向に進むべきかについての指示をいただければ幸いです。
可能であれば、追加のライブラリを使用せずにこれを解決しようとします
ありがとう
PS - 問題はここにあります http://www.codechef.com/problems/FCTRL
問題を解決するために使用した方法は次のとおりです。これは、以下のコメントを読むことで達成されました。
解決策 -- 数字の 5 は、ゼロで終わる数字の素因数です。したがって、階乗数を 5 で割って再帰的に商を加算すると、階乗結果の後続ゼロの数が得られます。
EG - 126 の末尾のゼロの数! = 31
126/5 = 25 余り 1
25/5 = 5 残り 0
5/5 = 1 余り 0
25 + 5 + 1 = 31
これはどの値でも機能します。商が 5 未満になるまで除算を続けてください。