看似簡單, 卻不簡單的加減乘除.



贊助商連結


Javen
2003-04-05, 03:02 AM
有興趣解的練習解解看吧:

(1) i := 1;
while i < n do
i = i + 3;
for j = 1 to i do S od
od

請問一共執行了幾次 = ? (n 為一常數)

(2) i := 0;
while i < n do
j := i;
while j < n do S; j := j + 1 od;
i := i + 1;
od;

請問一共執行了幾次 S ? (n 為一常數)

贊助商連結


darkuo
2003-04-05, 10:53 AM
q1:
M = (n-1) \ 3 //求整數部分
if( ((n-1) mod 3 ) = 0 ) then //如果餘數大於0則加1
M = M
else
M = M+1
end if
總共做了 M + [(M * (M+1)) / 2] * 3

q2:
總共做了 n * (n+1) / 2 次