題目分析:
我把結果分成3段
1.填補空白:因為有15層所以第一行填補15-1=14個.第二行填補15-2=13個...以此類推~
解:程式04-07行以一個迴圈 由1到 (n-i) 來填補空白~
2.產生順向字串:第一行1個.第二行2個....~
解:程式08行~利用行數取個位數~累加形成
3.產生反向字串:第一行0個.第二行1個....~
解:利用順向字串少取1位重複字[Mid(tempstr, 1, Len(Str(tempstr)) - 2)].再作字串反轉[StrReverse]即可.
複製程式
01 Dim n As Integer = 15
02 Dim tempstr As String = ""
03 Label1.Text = ""
04 For i As Integer = 1 To n
05 For j As Integer = 1 To (n - i)
06 Label1.Text &= " "
07 Next
08 tempstr &= Mid(Str(i), Len(Str(i)), 1)
09 Label1.Text &= tempstr & StrReverse(Mid(tempstr, 1, Len(Str(tempstr)) - 2)) & vbCrLf
10 Next
如果Label1屬性text預設為空白 則第3行可以省略
如果Label1屬性textalign預設為topcenter 則第5~7行可以省略
如果預設只有15層 則第1行可以省略 變數n改為15
反之~要9層..則第1行=15改為=9
ps.大於15層.因為字串長度計算會出問題「字串長度計算因素」~至於為何~請高手詳解吧~
另依照題目分析.程式也可以用陣列下去寫~請各位同學練習吧~
個人解法~請先進指導~