Ребятам уже встречалась подобная задача (см. комментарии к задаче 18). Здесь, так же как и в задаче 18, нужно экономить вершины, т. е. не размещать на одном уровне две одинаковые вершины, имеющие общую предыдущую (или две одинаковые корневые вершины). Исключение из этого правила составляет лишь случай, когда одна из одинаковых вершин является листом, а другая – нет. Например, в мешке V есть слова КИС и КИСА. У этих путей будут две общие вершины – К и И. Однако бусины С этих путей будут разными вершинами дерева.
Sub Ìàêðîñ1() Dim Sum(heigth - 1, width - 1) Dim Product(heigth - 1, width - 1)
For i = 0 To heigth - 1 For j = 0 To width - 1 Sum(i, j) = i + j Product(i, j) = i * j Next j Next i
Call Show(Sum, 0, 0) Call Show(Product, 0, 12) End Sub
Sub Show(ByRef m, dx, dy) For i = 0 To heigth - 1 For j = 0 To width - 1 ActiveSheet.Cells(dx + i + 1, dy + j + 1).Value = Hex(m(i, j)) Next j Next i End Sub
Const width = 10
Sub Ìàêðîñ1()
Dim Sum(heigth - 1, width - 1)
Dim Product(heigth - 1, width - 1)
For i = 0 To heigth - 1
For j = 0 To width - 1
Sum(i, j) = i + j
Product(i, j) = i * j
Next j
Next i
Call Show(Sum, 0, 0)
Call Show(Product, 0, 12)
End Sub
Sub Show(ByRef m, dx, dy)
For i = 0 To heigth - 1
For j = 0 To width - 1
ActiveSheet.Cells(dx + i + 1, dy + j + 1).Value = Hex(m(i, j))
Next j
Next i
End Sub