-2

x行数を表示してそれを繰り返すプログラムをすでに作成しました:

すなわち

1
2 2
3 3 3 
4 4 4 4 
5 5 5 5 5
6 6 6 6 6 6 

今、パスカルの三角形を作りたい

4

3 に答える 3

1

多分このようなもの:

Dim arr As Integer(,) = New Integer(7, 7) {}
 For i As Integer = 0 To 7
    For k As Integer = 7 To i + 1 Step -1
        'print spaces
        Console.Write(" ")
    Next

    For j As Integer = 0 To i - 1
        If j = 0 OrElse i = j Then
            arr(i, j) = 1
        Else
            arr(i, j) = arr(i - 1, j) + arr(i - 1, j - 1)
        End If
        Console.Write(arr(i, j) & " ")
    Next
    Console.WriteLine()
Next

コンソール出力:

ここに画像の説明を入力してください

于 2012-11-07T14:32:39.167 に答える
0

別のアプローチでは、以前と現在の反復のみをメモリに保持します。

Dim oldList As New List(Of Integer)({0, 1})
For line = 1 To 7
  Dim newList As New List(Of Integer)
  For i = 1 To oldList.Count - 1
    newList.Add(oldList(i - 1) + oldList(i))
  Next
  Debug.Print(String.Join(" ", newList))
  oldList.Clear()
  oldList.Add(0)
  oldList.AddRange(newList)
  oldList.Add(0)
Next
于 2012-11-07T16:43:41.907 に答える
0

Windowsフォームを使用してこれを行うには、テキストボックス、複数行のテキストボックス、およびデザインインターフェイス上のボタンが必要になります。

これがあなたがそれを生成するために必要なコードです

Imports System.Numerics 'this allows you to  use big integer

Public Class pascal_triangle


    Private Function factorial(ByVal k As Integer) As BigInteger

'big integer allows your proram compute for inputs of more than 22

        If k = 0 Or k = 1 Then

            Return 1

        Else

            Return k * factorial(k - 1)


        End If

    End Function



    Private Sub BtnGen_Click(sender As Object, e As EventArgs) Handles BtnGen.Click
        Dim nCr As Double

        Dim i, j, k As Integer


        Dim output As String

        output = ""

        j = Val(TxtColumn.Text)

        For k = 0 To j

            For i = 0 To k

                Dim fact, fact1, fact2 As BigInteger



                fact = factorial(k)

                fact1 = factorial(k - i)

                fact2 = factorial(i)

                nCr = fact / (fact1 * fact2)

                TxtOutput.Text += Str(nCr) & output





            Next

            TxtOutput.Text += vbCrLf

        Next



    End Sub


    Private Sub pascal_triangle_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub
End Class
于 2015-09-30T08:02:04.440 に答える