返回列表 上一主題 發帖

[發問] 請問堆積排序 遞迴 完全二元樹的範例如何修正

本帖最後由 n7822123 於 2021-7-28 04:51 編輯

回復 2# singo1232001

原因在於 此題AB兩者之間有相關性,他會先用A判斷B是否異常,而無法一起同時 if A and B 一起判斷  
步驟改為 if A =true then :if B=true then xxxx
避免B本身異常

VB6是比較舊的語法摟~ IF A and B then .....   

程式會 A 跟 B都 先判斷,再用And邏輯計算,不管 A 是 True 還是 False

VB.Net 幾乎都用 AndAlso 了(要用And也是可以),亦即前面先判斷,前面若為 False 則不往後判斷

等同你拆兩行寫~  你可以用以下程式分出區別,在VBA會跳出錯誤,在VB.Net 用AndAlso不會跳錯誤


程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2021-7-28 05:01 編輯

回復 2# singo1232001

看你用 遞歸 寫 階層函數

那我來考考你~ 如何只使用1個 For 迴圈,且不能用乘法運算子 "*"

只靠加法運算子,寫出 一個計算階層的函數

Ex:
輸入參數 1,5  會反饋 120 (1*2*3*4*5)  
輸入 參數2,6  會反饋 720 (2*3*4*5*6)  
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 6# singo1232001

你的答案也不錯,用了兩個遞歸~

Function Factorial(A, B) As Long
Dim S&
If A > B Then Factorial = 1: Exit Function
For i = 1 To A
  S = S + Factorial(A + 1, B)
Next i
Factorial = IIf(S = 0, 1, S)
End Function

Sub Test()
MsgBox Factorial(2, 6)
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題