導航:首頁 > 編程語言 > java數字金字塔

java數字金字塔

發布時間:2024-06-23 02:38:55

『壹』 java,輸入整數n(1<=n<=9),列印出n行數字金字塔,急急急!!!

package test20201231;

import java.util.Scanner;


public class Test01 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("請輸入一個1-9之間的整數");

int n = sc.nextInt();

while(n<1 || n>9){

System.out.println("你輸入的數字不在0-9之間,或者不是整數,請重新輸入");

n = sc.nextInt();

}

for(int i=1;i<=n;i++){

for(int j=n-i;j>0;j--){

System.out.print(" ");

}

for(int j=(i+i-1);j>0;j--){

System.out.print(i);

}

for(int j=0;j<n-i;j++){

System.out.print("");

}

System.out.println();

}

}

}

『貳』 Java 鐢ㄤ簩緇存暟緇勮緭鍑烘暟瀛楅噾瀛楀

public class Pyramid {
private static int Number = 5;

public static void main(String[] args) {
char[][] chars = new char[Number][Number * 2 - 1];
for (int i = 0; i < Number; i++) {
for (int j = 0; j < Number; j++) {
if (i + j > Number - 2) {
chars[i][j] = (char) (i + j + 2 - Number +48);
} else
chars[i][j] = ' ';
}
}
for(int i=0;i<Number;i++){
for(int j=Number;j<2*Number-1;j++){
chars[i][j]=chars[i][2*Number-2-j];
}
}
for(int i=0;i<Number;i++){
for(int j=0;j<2*Number-1;j++){
System.out.print(chars[i][j]+"\t");
}
System.out.println();
}
}
}

『叄』 怎樣用JAVA列印出下面下列數字金字塔

這是我看到的第三個相同的問題了

先給你講思路吧,首先這是個三角形,用3個FOR循環列印,一個控制行,一個控制前面的空格,一個控制後面打的東西。

如:

for(){//控制行數

for(){//控制每行前面的空格

}

for(){//控制每行所打的東西

}

}

例如光打個三角形的,不管裡面的數字,那就這樣:

for(inthang=0;hang<6;hang++){//控制行(hang)

for(intkongge=0;kongge<hang;kongge++){//控制前面空格

System.out.print("");

}

for(intneirong=6;neirong>hang;neirong--){//控制內容

System.out.print("*");

}

System.out.println();//列印完一行換行

}

第三個FOR循環裡面的neirong>hang(這個變數可以自己定,表示有對少內容,這個是大於行數,由行數來決定,因為行數循環一次增加一次,則內容就減少一個)

上面是每打一行,則少一個內容,而你的題目是少兩個,你數數,你的第一行有11個,第二就有9個了。

那就這樣:

intnr=11;//定義控制內容個數的變數nr

for(inthang=0;hang<6;hang++){//控制行

for(intkongge=0;kongge<hang;kongge++){//控制空格

System.out.print("");

}

for(intneirong=nr;neirong>0;neirong--){//看,內容等於nr

System.out.print("*");

}

nr=nr-2;//每循環完一次,nr減少2;

System.out.println();

}

看到了么第三個for循環里的neirong>0,我寫的是0,也可以的,意思內容由nr決定,第一次循環是11個數字,結束後nr-2,下一次循環就是9個數字了,以此類推

------------

好了,現在形狀已經列印出來了,那就把裡面的*改成變化的數字就可以了。首先你的數字是先是以3的倍數增加,然後到中間後,以3的倍數減少。你數數,每行都是從最中間開始變的,中間那個數最大。

那首先我想到的是寫兩個方法,一個乘,一個除。

一下是兩個方法:

publicstaticintcheng(intnum1){

num1=num1*3;

if(num1==0){

num1=1;

}

returnnum1;

}

publicstaticintchu(intnum1){

num1=num1/3;

returnnum1;

}

現在方法寫了,我們直接帶入進去就好了;

我給全部代碼:

publicclassSan{//類名三

publicstaticintcheng(intnum1){//靜態乘法方法

num1=num1*3;//帶入的參數乘3

if(num1==0){//判斷如果參數是0,則直接返回1

num1=1;

}

returnnum1;//返回結果

}

publicstaticintchu(intnum1){//靜態方法除法

num1=num1/3;//參數直接除以3

returnnum1;//返回結果

}

publicstaticvoidmain(String[]args){//程序入口main方法

intnr=11;//定義初始內容個數,11個

for(inthang=0;hang<6;hang++){//第一個FOR循環,控制行

intchushi=0;//上面兩個參數的初始值0

for(intkongge=0;kongge<hang;kongge++){//控制空格

System.out.print(" ");//列印空格

}

for(intneirong=nr;neirong>0;neirong--){//控制內容

intzhongjian=0;//定義最中間的數

if(nr%2!=0){//內容個數除2有餘,則除2+1

zhongjian=nr/2+1;

}else{//內容沒有餘數,則直接除2

zhongjian=nr/2;

}

if(neirong>=zhongjian){//如果內容個數大於中間數,則實行乘法

System.out.print(cheng(chushi)+" ");

chushi=cheng(chushi);

}else{//如果內容小於中間數,則實行除法

System.out.print(chu(chushi)+" ");

chushi=chu(chushi);

}

}

nr=nr-2;//換行,內容個數減少2個

System.out.println();//換行

}

}

}

--------------------------

不知道你明白沒。

上面的中間數意思是說告訴程序哪裡開始遞減。

比如第一行,有11個數字,到第6個數的時候停止再乘3,轉向除3,

那怎麼得到6?那就用11/2,而這樣只能得到5,所以我上面用了判斷,如有有餘數的話,就加上1,那中間數就得到6了,如果沒余數,就直接除2,第二行就是10/2,得到了5,你看看中間是不是第5個丫。

下面我判斷如果neirong>=zhongjian如果內容大於中間數的話,就執行乘法,不大於就執行除法。

用實際例子說明:你的例子第一行,有11個數,

那就是

13927812438127931

1110987654321

6以前的都是執行乘法,5以後的都是執行的除法餓。

你自己在仔細看看吧

剛看了這個問題,臨時想的方法,可能不怎麼好,但是你也可以看一看。

閱讀全文

與java數字金字塔相關的資料

熱點內容
運算符和庫函數編譯器處理的區別 瀏覽:485
宜昌程序員招聘 瀏覽:324
專業的電商程序源碼服務商 瀏覽:138
家用雲伺服器如何注冊 瀏覽:622
電腦文件夾打開變小了 瀏覽:514
程序員都特別在演算法上有研究 瀏覽:362
愛瘋app資源庫如何不顯示在主屏幕 瀏覽:984
伺服器失聯是為什麼 瀏覽:842
風控算程序員 瀏覽:630
加密狗遠程修改 瀏覽:723
我的世界網易伺服器的地址是什麼 瀏覽:924
地谷輪壓縮機與艾默生 瀏覽:268
太力真空壓縮袋好嗎 瀏覽:915
中老年程序員寫代碼 瀏覽:16
加密貨幣白皮書怎麼寫 瀏覽:475
中文版的pdf 瀏覽:107
else在python的用法 瀏覽:549
if命令cmd 瀏覽:688
花書pdf 瀏覽:272
wps合成pdf文件 瀏覽:807