SKY外语计算机学习

标题: VB_杨晖三角和蛇形矩阵 [打印本页]

作者: fieldmax    时间: 2012-4-28 21:33
标题: VB_杨晖三角和蛇形矩阵
本帖最后由 fieldmax 于 2012-4-28 22:17 编辑

  1. Public Enum DirectionEnum
  2.     ToRight = 0
  3.     ToDown = 1
  4. End Enum

  5. Sub zMatrix(X As Long, Y As Long, Optional Direction As DirectionEnum = 0)
  6. 蛇形矩阵

  7. Dim iX As Long
  8. Dim iY As Long
  9. Dim n As Long
  10. Dim DT As DirectionEnum
  11. ReDim mat(1 To X, 1 To Y) As Long
  12. DT = Direction
  13. iX = 1
  14. iY = 1
  15. n = 1
  16. mat(1, 1) = 1
  17. Do While n < X * Y
  18.     n = n + 1
  19.     If DT = 0 And (iY = 1 Or iX = X) Then
  20.         If iX < X Then
  21.             iX = iX + 1
  22.         Else
  23.             iY = iY + 1
  24.         End If
  25.         DT = 1
  26.     ElseIf DT = 1 And (iX = 1 Or iY = Y) Then
  27.         If iY < Y Then
  28.             iY = iY + 1
  29.         Else
  30.             iX = iX + 1
  31.         End If
  32.         DT = 0
  33.     ElseIf DT = 0 Then
  34.         iX = iX + 1
  35.         iY = iY - 1
  36.     ElseIf DT = 1 Then
  37.         iX = iX - 1
  38.         iY = iY + 1
  39.     End If
  40.     mat(iX, iY) = n
  41. Loop

  42. '打印部分
  43. Dim TempTx As String
  44. For iY = 1 To Y
  45.     For iX = 1 To X
  46.         If mat(iX, iY) >= 1000 Then
  47.             TempTx = TempTx & " " & mat(iX, iY)
  48.         ElseIf mat(iX, iY) >= 100 Then
  49.             TempTx = TempTx & "  " & mat(iX, iY)
  50.         ElseIf mat(iX, iY) >= 10 Then
  51.             TempTx = TempTx & "   " & mat(iX, iY)
  52.         Else
  53.             TempTx = TempTx & "    " & mat(iX, iY)
  54.         End If
  55.     Next
  56.     Print TempTx & vbCrLf
  57.     TempTx = ""
  58. Next
  59. End Sub

  60. Sub yhSj(C As Integer)
  61. '杨晖三角
  62. ReDim Tx(C, C) As Long
  63. Dim TempTe As String
  64. Dim iX As Integer
  65. Dim iY As Integer
  66. Tx(0, 0) = 1
  67.     For iY = 1 To C
  68.         For iX = 1 To iY
  69.             Tx(iX, iY) = Tx(iX - 1, iY - 1) + Tx(iX, iY - 1)
  70.             If Tx(iX, iY) >= 100 Then
  71.                 TempTx = TempTx & Tx(iX, iY) & " "
  72.             ElseIf Tx(iX, iY) >= 10 Then
  73.                 TempTx = TempTx & Tx(iX, iY) & "  "
  74.             Else
  75.                 TempTx = TempTx & Tx(iX, iY) & "   "
  76.             End If
  77.         Next
  78.         Print TempTx
  79.         TempTx = ""
  80.     Next
  81. End Sub
复制代码

作者: itle    时间: 2012-4-29 05:24
本帖最后由 sky_yx 于 2015-12-30 14:23 编辑

好久没用VB,再次看到这熟悉的代码,很有感触啊






欢迎光临 SKY外语计算机学习 (http://join.skywj.com/) Powered by Discuz! X2.5