請計算且說明下列片斷程式中 x = x + 1 的執行次數
for (i=1; i<=n; i++) {
k=i+1;
do {
x=x+1;
} while (k++ <= n);
}
雖然簡單,變數變化與描述格式(縮排)要寫清楚。
假設n=10
當i=1時,
k=2,x=x+1; 2<=10, k=3
k=2,3,4,5,6,7,8,9,10->執行x=x+1,9次
當i=2時,
k=3,x=x+1; 3<=10, k=4
k=3,4,5,6,7,8,9,10->執行x=x+1,8次
當i=3時,
k=4,x=x+1; 4<=10, k=5
k=4,5,6,7,8,9,10->執行x=x+1,7次
當i=4時,
k=5,x=x+1; 5<=10, k=6
k=5,6,7,8,9,10->執行x=x+1, 6次
當i=5時,
k=6,x=x+1; 6<=10, k=7
k=6,7,8,9,10->執行x=x+1,5次
當i=6,
k=7,x=x+1; 7<=10, k=8
k=7,8,9,10->執行x=x+1,4次
當i=7,
k=8,x=x+1; 8<=10, k=9
k=8,9 ,10->執行x=x+1,3次
當i=8,
k=9,x=x+1; 9<=10, k=10
k=9 ,10->執行x=x+1,2次
當i=9,
k=10,x=x+1; 10<=10, k=11
k=10->執行x=x+1,1次
當i=10,
k=11,x=x+1; 11<=10, k=12 跳出
k=11->1次
X=x-1執行次數為
1+2+…+(n-1)在加上一次
((1+(n-1))(n-1))/2+1=(n(n-1))/2+1
所以n筆資料會執行(n(n-1))/2+1次
沒有留言:
張貼留言
寫下幸福點子吧!