[理工] 資結 求執行次數

作者: bmpss92196 (bmpss92196)   2018-07-27 18:16:26
想請問此題
for i=1 to n do
{
x=n;
while(x>=0) do
{
x=x-i;
a++;
}
}
問a++執行次數
Ans
x=n x=n-i x=n-2i ... x=n-ki=0會執行 => k=n/i
想請問為什麼最後可以直接寫x=n-ki=0?
若n=5則第二輪(i=2)時不會有x=0的情況
謝謝
作者: godskull1535 (骷骷)   2018-07-27 20:43:00
nlognx=n-ki n-ki=0 k=n/i裡面while就n/i 外面for搭配Σ(n/i) 再把n提出來 然後Σ (1/i)=logn 所以就nlogn了你假設n=5,i=1 x=n 執行5次 變到i=2 x又會等於5,又會執行5次但現在是n要知道x=n 在看while(x>0) 代表x=0 while才跳出來所以裡面的x=x-i 會減到x-ki(減了k次)等於0為止才跳出 先知道裡面的迴圈跑幾次後在往外面展開 比較好算有打錯 假設n=5 i=2時 會減到-1為止才跳出 我覺得不用想太多 題目要求是x=0跳出 現在假設是n 就會n-ki=0

Links booklink

Contact Us: admin [ a t ] ucptt.com