題目及代碼示例
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int i = 0;
int j = 0;
int[][] yanghui=new int[n][n];
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
if(j==0 || j==i){
yanghui[i][j]=1;
}else{
yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
}
}
}
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.printf("%-4d",yanghui[i][j]);
}
System.out.println();
}
}
}
最簡(jiǎn)單易懂的新手須知
本段代碼知識(shí)點(diǎn)在于對(duì)for循環(huán)的應(yīng)用以及二維數(shù)組的使用,同時(shí)將if/else語(yǔ)句嵌套在for循環(huán)中,并且在輸出階段對(duì)格式進(jìn)行了規(guī)范,以下是詳解:
1.for循環(huán)
在Java語(yǔ)言中,有三種循環(huán)語(yǔ)句,分別是for語(yǔ)句,while語(yǔ)句以及do-while語(yǔ)句,其中for語(yǔ)句的使用在代碼編寫的過(guò)程中最為常見。
語(yǔ)法格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
????????????????{
? ? ? ? ? ? ? ? ? ? ? ? 語(yǔ)句;
????????????????}
表達(dá)式1:給循環(huán)變量初始值
表達(dá)式2:給出循環(huán)條件
????????????????(當(dāng)表達(dá)式2的值為"真(true)"時(shí),執(zhí)行循環(huán)體,再執(zhí)行表達(dá)式3改變變量的值)
? ? ? ? ? ? ? ? (當(dāng)表達(dá)式2的值為"假(false)"時(shí),跳出for循環(huán),執(zhí)行for循環(huán)后面的語(yǔ)句)
表達(dá)式3:給出循環(huán)變化的規(guī)律
例子:
int i=0;
for(i=0;i<10;i++)
{
System.out.println("%d",i);
}
在這個(gè)for循環(huán)中,i=0是初始條件,i<10是判斷條件,當(dāng)i的大小滿足這個(gè)條件時(shí),執(zhí)行for循環(huán),即執(zhí)行一次,i就加1,直到i=10時(shí),不符合表達(dá)式2的條件,跳出循環(huán),因此,運(yùn)行結(jié)果如下:
0
1
2
3
4
5
6
7
8
9
上面是一個(gè)for循環(huán)的例子,在日常寫代碼時(shí),我們常常會(huì)用到for循環(huán)的嵌套使用,就如實(shí)例代碼中的一段:
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.printf("%-4d",yanghui[i][j]);
}
System.out.println();
}
在本段代碼中我們使用了for循環(huán)的嵌套(注:i和j在整體代碼開始時(shí)已被定義為整型int,n為楊輝三角的行數(shù)),下面我將對(duì)循環(huán)順序作簡(jiǎn)短解釋:
第一次循環(huán):i=0,j=0,打印yanghui[0][0]的值,j+1,此時(shí)i=0,j=1,不滿足j<=i,則跳出第二層循環(huán),但此時(shí)依舊在第一層循環(huán)中,因此執(zhí)行System.out.println();進(jìn)行換行操作,至此,第一層for循環(huán)也結(jié)束了,i+1,進(jìn)入第二次循環(huán)。
第二次循環(huán):i=1,j=0,打印yanghui[1][0]的值,j+1,此時(shí)i=1,j=1,依舊滿足j<=i,則再次進(jìn)行第二層循環(huán),打印yanghui[1][1]的值,j+1,此時(shí)i=1,j=2,不滿足j<=i,則跳出第二層循環(huán),執(zhí)行System.out.println();進(jìn)行換行操作,至此,第一層for循環(huán)再次結(jié)束了,i+1,進(jìn)入第三次循環(huán)。
以此類推
2.二維數(shù)組的使用
在了解二維數(shù)組之前,我們需要知道一維數(shù)組如何去定義,聲明一維數(shù)組變量的語(yǔ)法格式有以下兩種格式:
數(shù)據(jù)類型[ ] 數(shù)據(jù)變量;
數(shù)據(jù)類型 數(shù)據(jù)變量[ ];
例:int[ ] a;
? ? ? ?int a[ ];
這兩種格式都是正確的,當(dāng)然,如果我們想聲明多個(gè)一維數(shù)組可以使用一下格式:
例:int[ ] c,d,e;
? ? ? ?int c[ ],d[ ],e[ ];
聲明過(guò)后,我們需要為數(shù)組分配空間,這里要用到new申請(qǐng)數(shù)組所需的內(nèi)存單元,語(yǔ)法格式如下:
數(shù)組變量=new 數(shù)據(jù)類型[長(zhǎng)度];
例:a=new int[6];
我們可以把以上兩步結(jié)合,例如:
int[ ] a=new int[6];
如果我們想獲取數(shù)組的長(zhǎng)度,可以使用以下格式:
數(shù)組變量.length
新手須知?。?!
int a[3]意為這個(gè)一維數(shù)組中有三個(gè)元素,但第一個(gè)元素為a[0],第二個(gè)元素為a[1],第三個(gè)元素為a[2],記住,沒有a[3]?。?!
我們可以對(duì)新數(shù)組賦初值,例如:
int a[4]={1,2,3},其中,第四個(gè)元素(a[3])我們沒有賦初值,但系統(tǒng)還是會(huì)分配一個(gè)初值給它,即0,不同的數(shù)組類型系統(tǒng)所分配的初值也會(huì)不同
數(shù)據(jù)類型 | 初始化值 | 數(shù)據(jù)類型 | 初始化值 |
byte,short,int,long | 0 | char | '\u0000' |
float | 0.0f | boolean | false |
double | 0.0 | 引用數(shù)據(jù)類型 | null |
現(xiàn)在我們開始介紹二維數(shù)組
(1)二維數(shù)組的聲明
????????int a[ ][ ];
????????a=new int[3][3]; //三行三列的存儲(chǔ)單元
????????即int a[ ][ ]=new int[3][3];
? ? ? ? 也可int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
a[0][0]=1 | a[0][1]=2 | a[0][2]=3 |
a[1][0]=4 | a[1][1]=5 | a[1][2]=6 |
a[2][0]=7 | a[2][1]=8 | a[2][2]=9 |
(2)獲取數(shù)組的長(zhǎng)度
? ? ? ? a.length;//獲取二維數(shù)組的長(zhǎng)度,即二維數(shù)組的行數(shù)
? ? ? ? a[0].length;//獲取一維數(shù)組的長(zhǎng)度,即二維數(shù)組的列數(shù)
3.輸出格式
當(dāng)我們想輸出一個(gè)格式化的數(shù)時(shí),可以遵循一下方法:
"%.xf"(x為整數(shù))——輸出一個(gè)保留x為小數(shù)的數(shù)值
"%yf"(y為整數(shù))——輸出一個(gè)寬度為y的數(shù),若長(zhǎng)度不足,則補(bǔ)上空格,右對(duì)齊,如"%7f"可將1.2格式化為"(四個(gè)空格)1.2"
"%-yf"(y為整數(shù))——輸出一個(gè)寬度為y的數(shù),若長(zhǎng)度不足,則補(bǔ)上空格,左對(duì)齊,如"%-7f"可將1.2格式化為"1.2(四個(gè)空格)"
"%+d":如"%+111"將輸出為"+111"
"%,d":如"%,1110000"將輸出為"1,110,000"
當(dāng)組合使用時(shí),如System.out.printf("%-4.1f",0.16);輸出為"0.2(一個(gè)空格)"文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-844711.html
以上就是本題的重要知識(shí)點(diǎn),如果把這些知識(shí)點(diǎn)看懂了,那么上面的代碼讀起來(lái)可以說(shuō)就是易如反掌了!
后言
本博客只是我作為一個(gè)Java初學(xué)者對(duì)目前所學(xué)的知識(shí)的最淺顯的理解,暫時(shí)無(wú)法用專業(yè)語(yǔ)言表達(dá)出來(lái),只能依照我自己的理解對(duì)學(xué)習(xí)過(guò)程做一個(gè)記錄,以便以后復(fù)習(xí)使用,若有大佬路過(guò)請(qǐng)多多提出寶貴意見,指出我的錯(cuò)誤,當(dāng)然要是能給一些指導(dǎo)就更好啦(doge)!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-844711.html
到了這里,關(guān)于鄭州輕工業(yè)大學(xué)-程序設(shè)計(jì)技術(shù)(Java)-PTA實(shí)驗(yàn)1(7-5)-打印楊輝三角的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!