การสาธิตที่นี่คืออัลกอริทึมการสะสม เช่น 1,2,3,4...n
นั่นคือ: ผลรวม = 1+2+3+4...+n;
เราสามารถทำได้:
สำหรับ (ยาว i = 1,v = ค่า; i <= v; i++) {
ผลรวม += ฉัน;
-
จำนวนเงินที่ส่งคืน;
-
-
* การใช้อัลกอริธึมการสะสม<br>
-
* @วันที่ 16-4-2556
* @ผู้เขียน hongten
-
-
AddArithmetic คลาสสาธารณะ {
-
* วนซ้ำเพื่อใช้วิธีการสะสม
* ค่า @param
* @กลับ
-
วงจรยาวคงที่ส่วนตัว (ค่ายาว) {
ผลรวมยาว = 0;
สำหรับ (ยาว i = 1,v = ค่า; i <= v; i++) {
ผลรวม += ฉัน;
-
จำนวนเงินที่ส่งคืน;
-
-
* วิธีเกาส์เซียน:<code>(n+1)*n/2</code><br>
* คุณสามารถอ่านเพิ่มเติมได้ที่<a href="http://zhidao.baidu.com/question/411055258.html">ที่นี่</a>
* ค่า @param
* @กลับ
-
gaosi ยาวคงที่ส่วนตัว (ค่ายาว) {
ผลรวมยาว = 0;
ผลรวม = (ค่า + 1) * ค่า / 2;
จำนวนเงินที่ส่งคืน;
-
โมฆะสาธารณะคงหลัก (สตริง [] 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("ใช้วิธี Gaussian เพื่อสะสมจาก [1] ถึง ["+value+"], เวลาที่ใช้: ["+(end - start) + "]ms, ผลลัพธ์: "+ sum);
-
-
แน่นอนว่าผลการทำงานของเครื่องจักรที่มีการกำหนดค่าต่างกันจะแตกต่างกัน...
สถานะการทำงานของเครื่องของฉัน: