15.最大整數(shù)問題:設(shè)有 n 個隨機生成的正整數(shù),將它們連接成一排,組成一個最大的多位整數(shù)。其求解 思想是:先把整數(shù)轉(zhuǎn)換成字符串,然后再比較 a+b 和 b+a,如果 a+b>b+a,就把 a 排在 b 的前 面,反之則把 b 排在 a 的前面。 例如:n=3 時,3 個整數(shù) 13,312,343,連成的最大整數(shù)為 34331213。 靜靜編寫了一個 VB 程序,功能如下:在列表框 List1 中隨機生成 n 個 1~1000 之間的整數(shù),單擊“求解”按鈕 Command1 后,最大整數(shù)輸出在文本框 Text1 中。當(dāng) n 等于 4 時,程序運行界面如圖所示。 實現(xiàn)上述功能的 VB 程序如下,請回答下列問題: (1)當(dāng) n=3 時,3 個數(shù):517,571,57,由這三個數(shù)組成的最大整數(shù)為
。 (2)請在橫線處填入合適的代碼。 Const n=4 Dim a(1 To n) As Integer Dim i As Integer,j As Integer Dim t As Integer,k As Integer Private Sub Form_Load
Randomize For i=1 To n a(i)=①
'生成 1~1000 之間的隨機整數(shù) List1.AddItem“a(“+CStr(i)+“)=“+CStr(a(i)) Next i End Sub Function cmp(a As Integer,b As Integer) As Boolean If CStr(a)+CStr(b)<CStr(b)+CStr(a) Then cmp=True Else cmp=False End If End Function Private Sub Command1_Click
For i=1 To n-1 k=i For j=i+1 To n If ②
Then k=j Next j If ③
Then t=a(k):a(k)=a(i):a(i)=t Next i For i=1 To n Text1.Text=Text1.Text+CStr(a(i)) Next i End Sub
Const n=8 Dim h(1 To n) As Integer,num1(1 To n) As Integer,num2(1 To n) As Integer Dim sex(1 To n) As Boolean'男生 sex=True,女生 sex=False Dim i As Integer,j As Integer,m As Integer Private Sub Form_Load _____ 'n 名學(xué)生(包括男生和女生)的編號、性別和身高由數(shù)據(jù)庫導(dǎo)出,分別存儲在數(shù)組 num1、h 和 sex 中,代碼略!End Sub Private Sub Command1_Click ____ For i=1 To n-1 For j=n To i+1 Step-1 If sex(j)=True Then If ①Then t=h(j):h(j)=h(j-1):h(j-1)=t t=sex(j):sex(j)=sex(j-1):sex(j-1)=t t=num1(j):num1(j)=num1(j-1):num1(j-1)=t End If End If Next j Next i For i=1 To n If sex(i) Then Text1.Text=Text1.Text+““+Str(h(i)) End If If Not sex(i) Then m=i:Exit For'改錯 Next i End Sub Private Sub Command2_Click _____ Dim L,R As Integer,mid As Integer mid=Int((1+m)/2)L=0:R=0 ②For i=2 To m Step 2 R=R+1 num2(mid+R)=num1(i) L=L+1 ③Next i For i=1 To m Text2.Text=Text2.Text+“男“+CStr(num2(i))+“號“Next i End Sub