演算法練習--小球下落,--小球下落

來源:互聯網
上載者:User

演算法練習--小球下落,--小球下落
小球下落: 
完全二叉樹,最大深度D。所有節點從上到下從左至右編號為1,2,3...2的D次方-1.在節點1處放一個小球,它會往下落。每個內節點上都由一個開關,初始全部關閉,當每次有小球落到一個開關上時,它的狀態都會改變。當小球達到一個內節點時,如果該節點上的開關關閉,往左走,否則往右走,直到遍曆到葉子節點。
問題,輸入 深度和小球個數
輸出節點編號


輸入 4 2  輸出 12
輸入 3 4  輸出 7


參考實現


function f(depth,count){var states = new Array();var r;for(var i = 0;i < count;i++){for(var root = 1;root <Math.pow(2,depth-1);){if(states[root] && states[root].open){states[root].open = false;root = root * 2 + 1;}else{if(!states[root]){states[root]={open:true};}else if(states[root].open == false){states[root].open = true;}root = root * 2;}r=root;}}return r;}console.log(f(4,2));console.log(f(3,4));console.log(f(10,1));console.log(f(2,2));console.log(f(8,128));console.log(f(16,12345));



VB的小球下落的問題

Private Sub Command1_Click()
Dim n As Double
Dim sum As Double
sum = 10
n = 2 / 3
h = 10
For i = 1 To 9
h = h * n '計算每次最大高度
sum = sum + h * 2 '每次落地計算上升和下降兩次路程
Next
MsgBox "計算第10次落地時運動的總路程為:" & sum
End Sub

Private Sub Command2_Click()
Dim debt As Double '要還的錢
Dim aleadyPay As Double '已還的錢
Dim x As Double '利率
Dim year As Integer '還錢年數
debt = 10
aleadyPay = 0
x = 0.07
year = 0
Do While aleadyPay < debt
debt = debt * (1 + x)
aleadyPay = aleadyPay + 3
year = year + 1
Loop
MsgBox ("要還" & year & "年" & Chr(13) & Chr(10) & "最後一年還錢" & (debt - aleadyPay + 3) & "萬元")

End Sub

你補充的問題,sum每次都被賦值為10,失去程式的意義了
 
物理進,小球下落路徑問題:小球下落,直至彈跳停止為止所通過的路線總長度

其實很簡單的,有兩個方法。
1,計算每一次彈跳的路徑,然後相加,最後會列出一個等差數列,數學應該學過了,算一下就行。不過有點煩。
2,簡單一點,當你去計算小球每一次下落,每一次彈起所做的功會發現,第一次下落和第二次上彈所做功正好可以抵消,以此類推,就是說第一次上彈和最後一次下落所做功相加為零,即kmgs=mgh,所以s=k/h
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.