16.現有n根棍子,第i根棍子的長度為ai.想要從中選出三根棍子組成周長盡可能長的三角形,輸出最大的周長;若無法組成三角形,則輸出0.如當n=5,a={2,3,4,5,10}時,輸出12,即選擇了3、4、5.當n=4,a={4,5,10,20}時,無法組成三角形,輸出0.加框處代碼有誤,請改正. Dim a( 1To 1000)As Integer Dim n As Integer Private Sub Form_Load ( ) ‘確定n的值和數組a的各個元素值,即每根棍子的長度值,代碼略 End Sub Function max(x As Integer,y As Integer) As Integer If x>y Then max=x Else Max=y End If End Function Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,k As Integer Dim ans As Integer,c As Integer,longest As Integer,rest As Integer ans=0 ‘讓i<j<k,保證棍子不會重復選中 For i=1To n For j=i+1 To n For k=j+1 To n c=a(i)+a(j)+a(k) longest=‘① rest=c-longest‘rest保存最短的兩條邊的和 If Then‘② ans=max(ans,c) End If Next k Next j Next i Print ans End Sub.
17.一個考古學家在尋找外星生物曾到過地球的證據.他偶然發現一面破損的墻上有一串奇怪的數字,數字長度不超過9位數,左側是完整的,而很多數字的右側部分因石頭被腐蝕而極難辨認.他發現保存完好的數都是2的冪,于是他猜測所有數都是2的冪.為了證明他的結論,他選取了一份數的清單,每個數中清晰可辨的數字個數總是嚴格小于模糊不清的數字個數.請你為這些數找出一個盡量小的2的冪,使得它左側的數字和清單吻合. 以下程序,在Text1中輸入一個清單中的數n,單擊按鈕Command1后在Label中輸出一個最小的指數x(若存在),使得2x從最高位開始的若干個數字等于n.如:輸入10,則找到最小的x=20,即220=1048576的前兩位與輸入數相同;而x=10的結果1024長度不符.如果在給定條件內找不到這樣的指數x,則輸出“No Power of 2”. 'power函數的功能與2^n一致,只不過它的返回值是String類型而不是整數型 Function power(n As Integer) As String Dim res As Long res=2^n power=Trim(Str(res))‘trim ( )函數的作用是去掉字符串左右的空格 End Function 'check ( )函數用于檢測前幾位數和長度是否符合要求,符合要求返回為True Function check(x_power As String,n As String) As Boolean Dim length As Integer,x_power_len As Integer length=Len(n) x_power_len=Len( x_power) If Mid(x_power,1,length)=n And
Then check=True Else check=False End If End Function Private Sub Commandl_Click ( ) Dim n As String,i As Integer,x As String n=Textl.Text i=0 x=power(i) Do While Len(x)<10And ② i=i+1 x=power(i) Loop If Len(x)<10Then Labell.Caption=“2的”& ③ & “次方的前幾位是”& n &“,符合要求” Else Label1.Caption=“No Power of 2” End If End Sub.