题目分析:
我把结果分成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层.因为字串长度计算会出问题「字串长度计算因素」~至于为何~请高手详解吧~
另依照题目分析.程式也可以用阵列下去写~请各位同学练习吧~
个人解法~请先进指导~