ここでのデモは、1、2、3、4...n などの累積アルゴリズムです。
つまり、 sum = 1+2+3+4...+n;
これを行うことができます:
for (long i = 1,v = 値; i <= v; i++) {
合計 += i;
}
合計を返します。
}
/**
* 累積アルゴリズムの実装<br>
*
* @日付 2013-4-16
* @著者ホンテン
*
*/
パブリック クラス AddArithmetic {
/**
* 累積メソッドを実装するループ
* @param値
* @戻る
*/
プライベート静的ロングサイクル(long値) {
長い合計 = 0;
for (long i = 1,v = 値; i <= v; i++) {
合計 += i;
}
合計を返します。
}
/**
* ガウス法:<code>(n+1)*n/2</code><br>
* 詳細については、<a href="http://zhidao.baidu.com/question/411055258.html">こちら</a>からご覧ください。
* @param値
* @戻る
*/
プライベート静的long gaosi(long value) {
長い合計 = 0;
合計 = (値 + 1) * 値 / 2;
合計を返します。
}
public static void main(String[] args) {
//メモリをクリーンアップしますが、実行されない可能性があります。
System.gc();
// 値を変更すると、異なる結果が得られます
長い値 = 10000000;
長い合計 = 0;
ロングスタート = System.currentTimeMillis();
合計 = サイクル(値);
長い終わり = System.currentTimeMillis();
System.out.println("ループ累積メソッドを使用して、[1] から ["+value+"] まで累積します。所要時間: ["+(end - start) + "]ms、結果: "+ sum);
//メモリをクリーンアップしますが、実行されない可能性があります。
System.gc();
開始 = System.currentTimeMillis();
合計 = gaosi(値);
終了 = System.currentTimeMillis();
System.out.println("ガウス法を使用して [1] から ["+value+"] まで累積します。所要時間: ["+(end - start) + "]ms、結果: "+ sum);
}
}
もちろん、構成が異なるマシンの実行結果は異なります...
私のマシンの動作状況: