0

私のコードに何か問題がある場合、誰かがキャッチできますか?この階乗を実行して秒に変換するのにかかる時間を計測しようとしていますが、間違った値が出力されているようです。ありがとう!!

    long startTime = System.nanoTime();
    BigInteger factorial_minute = doFactorial(50000);
    long endTime = System.nanoTime();

    String factorial_minute_str = factorial_minute.toString();
    System.out.println("Largest n! in one minute = " + factorial_minute);
    System.out.println("n! in one minute Amount of Digits: " + factorial_minute_str.length()); // Print the length also
    System.out.println("Total execution time: " + (int)((endTime - startTime)/1000000000 + " seconds") );

出力は

総実行時間:4秒

編集、1000000000に変更しましたが、出力がまだ間違っているようです。

4

1 に答える 1

4

1ナノ秒は、100万分の1ではなく、10億分の1秒です。除数にさらに3つのゼロを追加します。

(endTime - startTime)/1000000000
于 2013-01-31T01:57:51.510 に答える