x = 0;
for (i = 1; i <= n/2; i ) {
for (j = 1; j <=n; j ) {
if (j > i)
x ;
}
}
我試圖通過捕獲總和來預測 x 的值,但我有點卡住了,因為我知道對于第一個 for 回圈的每次迭代,內回圈的總和都會發生變化。例如,如果我們假設 x 為 10,在內回圈第一次完成后,x 將有 9,然后在第二次完成后,我們將 8 加到 x,然后是 7、6 等。x 的最終值為 35 . 對于任何正偶數 n,我將如何在一個內聚方程中表示這一點?
uj5u.com熱心網友回復:
跳到最后一個簡單的方程式;在這里,我展示了您可能會采取的步驟。
首先,這是原始代碼:
x = 0;
for (i = 1; i <= n/2; i ) {
for (j = 1; j <=n; j ) {
if (j > i)
x ;
}
}
我們可以從 i 1 開始 j 以跳過很多無意義的回圈
x = 0;
for (i = 1; i <= n/2; i ) {
for (j = i 1; j <=n; j ) {
if (j > i)
x ;
}
}
然后,我們可以只添加 ni,而不是在每個 ni 回圈上添加 1。
x = 0;
for (i = 1; i <= n/2; i ) {
x = (n-i)
}
與此相同(只是寫出我們在回圈中添加的內容):
x = (n-1) (n-2) ... (n - n/2)
我們可以拉出n。
x = n * (n/2) - 1 - 2 - 3 - ... - n/2
最后的簡化是對 1 到 n/2 的總和。
x = n * (n/2) - ((n/2) * (n/2 1))/2
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/441744.html
上一篇:以恒定速率移動球與角度
