C++ では、最大の整数型は 'long long' であり、64 ビットのメモリを保持するため、明らかに 250 を格納することはできません! 整数型で。文字列を使用するのは賢明なアイデアですが、基本的にコードで行っていることは (私は atoi() 関数を使用したことがないため、1 文字を超える文字列でも機能するかどうかはわかりませんが、関係ない):
- 文字列を整数に変換します (このコードがうまく機能した場合、一瞬で 249 の値を含む文字列になります!)
- 文字列の値を掛けます
したがって、乗算が完了したら、整数を文字列に戻すことさえしません。そして、それを行ったとしても、文字列を整数に変換し直すと、整数が文字列の値を保持できないため、プログラムがクラッシュします。
私の提案は、大きな整数に何らかのクラスを使用することです。残念ながら、C++ で利用できるものはありません。そのため、自分でコーディングするか、インターネットで見つける必要があります。でも、自分でコーディングしても、少し考えればそんなに難しくないので安心してください。文字列を使用してアイデアを使用することもできます。これは、この問題の場合でも最善のアプローチではありませんが、メモリをあまり使用せずに、必要な時間内に結果が得られます。