欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java計算1到1億的和

張越彬1年前6瀏覽0評論

計算1到1億的和是一道經典的算法題,對于Java程序員來說也是必須掌握的基本技能之一。

以下是一個使用Java語言計算1到1億的和的例子:

public class CalculateSum {
public static void main(String[] args) {
long sum = 0;
for(int i = 1; i<= 100000000; i++) {
sum += i;
}
System.out.println("1到1億的和為:" + sum);
}
}

以上代碼使用了for循環來遍歷1到1億之間的所有數字,并計算它們的和。最后,使用System.out.println()方法輸出結果。

但是,這個方法在性能上還有優化的空間。我們可以使用多線程來提升計算速度。以下是使用多線程計算1到1億的和的代碼:

public class MultiThreadCalculateSum {
public static void main(String[] args) {
final int THREAD_COUNT = 10; // 10個線程
final int NUMBER_COUNT_PER_THREAD = 10000000; // 每個線程計算的數字數量
long sum = 0;
for(int i = 0; i< THREAD_COUNT; i++) {
final int begin = i * NUMBER_COUNT_PER_THREAD + 1;
final int end = (i + 1) * NUMBER_COUNT_PER_THREAD;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
long subSum = 0;
for(int j = begin; j<= end; j++) {
subSum += j;
}
synchronized (this) {
sum += subSum;
}
}
});
thread.start();
}
while(Thread.activeCount() >1) {
Thread.yield();
}
System.out.println("1到1億的和為:" + sum);
}
}

以上代碼使用了10個線程來計算1到1億之間的所有數字。每個線程計算1000萬個數字。線程計算完畢后,使用synchronized同步代碼塊保證sum值的正確累加。

無論是單線程還是多線程,計算1到1億的和都需要耗費大量的時間和計算資源。作為一名Java程序員,我們需要平衡計算速度和計算資源消耗。