源代碼如下:
成都創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,上千客戶的共同信賴。提供網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、友情鏈接、建網(wǎng)站、網(wǎng)站搭建、自適應(yīng)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
Private?Sub?Form_Click()????N?=?InputBox("",?"",?5)????ReDim?a(N?+?1,?N?+?1),?b(N?+?1,?N?+?1)????Cls????k?=?8????For?I?=?1?To?N????Print?String((N?-?I)?*?k?/?2?+?1,?"?");????For?J?=?1?To?I????a(I,?1)?=?1????a(I,?I)?=?1????a(I?+?1,?J?+?1)?=?a(I,?J)?+?a(I,?J?+?1)????b(I,?J)?=?Trim(Str(a(I,?J)))????Print?b(I,?J);?String(k?-?Len(b(I,?J)),?"?");????Next?J????Print????Next?IEnd?Sub
運行程序,在文本框輸入8,再點窗體,效果圖如下:
擴(kuò)展資料:
楊輝三角在Java中的代碼如下:
public?class?TriangleArray{???public?static?void?main(String[]?args)???{??????final?int?NMAX?=?10;????????//?allocate?triangular?array??????int[][]?odds?=?new?int[NMAX?+?1][];??????for?(int?n?=?0;?n?=?NMAX;?n++)?????????odds[n]?=?new?int[n?+?1];?????????//?fill?triangular?array??????for?(int?n?=?0;?n??odds.length;?n++)?????????for?(int?k?=?0;?k??odds[n].length;?k++)?????????{????????????/*?????????????*?compute?binomial?coefficient?n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)?????????????*/????????????int?lotteryOdds?=?1;????????????for?(int?i?=?1;?i?=?k;?i++)???????????????lotteryOdds?=?lotteryOdds?*?(n?-?i?+?1)?/?i;?????????????odds[n][k]?=?lotteryOdds;?????????}???????//?print?triangular?array??????for?(int[]?row?:?odds)??????{?????????for?(int?odd?:?row)????????????System.out.printf("%4d",?odd);?????????System.out.println();??????}???}}
字面上:
如果a(i,j)不等于零,那么b(j)后拼接上空格和a(i-1,j)
本質(zhì)上是:
a(i,j)是本行(也就是i行)第j個數(shù)據(jù);a(i, j)如果是零,就是本行排不到那么遠(yuǎn),只有不是零才有這個列的數(shù)據(jù):b(j-1)就是前一列級以前的數(shù)據(jù)(當(dāng)然,b(0)永遠(yuǎn)不會被賦值所以是空字符串),b(j)就是本行的到本列為止的數(shù)據(jù)了,j循環(huán)到頭(最后因為是零而不會寫上),就是完整的一行了。
b(j)
參考:
以下為十行的楊輝三角輸出,根據(jù)這個自己做相應(yīng)修改,都做好了,那你就是伸手黨了。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, j As Integer
Dim n As Integer
n = 10
Dim dete(n, n) As Integer
Dim sum As Integer
For i = 0 To n
For j = 0 To i
If i = 0 Then
dete(i, j) = 1
ElseIf j = 0 Then
dete(i, j) = 1
ElseIf i = j Then
dete(i, j) = 1
Else
dete(i, j) = dete(i - 1, j - 1) + dete(i - 1, j)
End If
Next
Next
For i = 0 To n
For j = 0 To i
Debug.Write(dete(i, j) " ")
sum += dete(i, j)
Next
Debug.WriteLine(" ")
Next
End Sub
End Class
VB代碼:
Option Base 1
Private Sub form_click()
Const n=10
Dim arr(n,n)As Integer
For i=1 To n
arr(i,i)=1
arr(i,1)=1
Next i
For i=3 To n
For j=2 To i-1
arr(i,j)=arr(i-1,j-1)+arr(i-1,j)
Next j
Next i
For i=1 To n
For j=1 To i
Print arr(i,j);
Next j
Next i
End Sub
輸出結(jié)果:
擴(kuò)展資料:
printf的格式
printf函數(shù)的原型為:
#includelt;stdio.hgt;
int printf(const char*format,...);
在講每一個函數(shù)的時候都會先把它的函數(shù)原型寫出來,這個原型你們現(xiàn)在看不懂不要緊,等到學(xué)完C語言之后再來看這個原型就會發(fā)現(xiàn)它是很有參考意義的!它對深刻理解函數(shù)有著很大的價值。
printf的格式有四種:
1)printf("字符串\n");
#includelt;stdio.hgt;
int main(void)
{
printf("Hello World!\n");//\n表示換行
return 0;
}
其中\(zhòng)n表示換行的意思。它是一個轉(zhuǎn)義字符,前面在講字符常量的時候見過。其中n是“new line”的縮寫,即“新的一行”。
此外需要注意的是,printf中的雙引號和后面的分號必須是在英文輸入法下。雙引號內(nèi)的字符串可以是英文,也可以是中文。
2)printf("輸出控制符",輸出參數(shù));
#includelt;stdio.hgt;
int main(void)
{
int i=10;
printf("%d\n",i);/*%d是輸出控制符,d表示十進(jìn)制,后面的i是輸出參數(shù)*/
return 0;
}
這句話的意思是將變量i以十進(jìn)制輸出。
i本身就是十進(jìn)制,程序中雖然寫的是i=10,但是在內(nèi)存中并不是將10這個十進(jìn)制數(shù)存放進(jìn)去,而是將10的二進(jìn)制代碼存放進(jìn)去了。計算機(jī)只能執(zhí)行二進(jìn)制0、1代碼,而0、1代碼本身并沒有什么實際的含義,它可以表示任何類型的數(shù)據(jù)。
所以輸出的時候要強(qiáng)調(diào)是以哪種進(jìn)制形式輸出。所以就必須要有“輸出控制符”,以告訴操作系統(tǒng)應(yīng)該怎樣解讀二進(jìn)制數(shù)據(jù)。
如果是%x就是以十六進(jìn)制的形式輸出,要是%o就是以八進(jìn)制的形式輸出。
3)printf("輸出控制符1輸出控制符2…",輸出參數(shù)1,輸出參數(shù)2,…);
#includelt;stdio.hgt;
int main(void)
{
int i=10;
int j=3;
printf("%d%d\n",i,j);
return 0;
}
輸出控制符1對應(yīng)的是輸出參數(shù)1,輸出控制符2對應(yīng)的是輸出參數(shù)2……編譯、鏈接、執(zhí)行后看一下輸出結(jié)果:
10 3
注意:10和3之間有一個空格;因為上面%d和%d之間有空格,printf中雙引號內(nèi)除了輸出控制符和轉(zhuǎn)義字符\n外,所有其余的普通字符全部都原樣輸出。比如:
#includelt;stdio.hgt;
int main(void)
{
int i=10;
int j=3;
printf("i=%d,j=%d\n",i,j);
return 0;
}
再編譯、鏈接、執(zhí)行一下:
i=10,j=3
i=、,、空格和j=全都原樣輸出了。此外需要注意的是:“輸出控制符”和“輸出參數(shù)”無論在“順序上”還是在“個數(shù)上”一定要一一對應(yīng)。
4)printf("輸出控制符非輸出控制符",輸出參數(shù));
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim n As Integer, i As Integer, j As Integer, a(,) As Integer
n = 10
ReDim a(n + 1, n + 1)
For i = 1 To n + 1
a(i, 1) = 1 : a(i, i) = 1 : Next i
For i = 3 To n + 1
For j = 2 To i - 1
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next j, i
For i = 1 To n + 1
For j = 1 To i
TextBox1.AppendText(Space(4 - Len(Trim(Str(a(i, j))))) Trim(Str(a(i, j))))
Next j
TextBox1.AppendText(vbCrLf)
Next i
End Sub
End Class