本文目錄一覽:
- 1、java for循環輸出金字塔
- 2、怎樣用JAVA打印出下面下列數字金字塔
- 3、java輸出如下的金字塔形的數字
- 4、java打印金字塔數字,1.2.4.8.16…..這樣的數表用for語句應該怎麼寫啊
- 5、怎麼用java打印金字塔
- 6、編寫空心菱形金字塔的java程序
java for循環輸出金字塔
每行三部分,前面的空格,中間星號,找出行號跟數量的關係,後面加個換行符。
假設第四行前面一個空格,那麼第三行是兩個空格,第二行是三個,第一個行是四個。
設行號是X,所以空格數量跟行號的關係是:5-X。
星號的數量就等於:1+(X-1)*2
for(int i=1; i=4; i++) //最外層for控制第一到第四行輸出
{
for(int j=1; j=5-i; j++){ //控制每行開頭的空格輸出數量
System.out.print(” “);
}
for(int k=1; k=1+(i-1)*2; k++) //控制接着空格後面輸出的星號數量
{
System.out.print(“*”);
}
System.out.print(“\n”); //每行前兩部分輸出完了後,輸出一個換行符換到下一行。
}
怎樣用JAVA打印出下面下列數字金字塔
這是我看到的第三個相同的問題了
先給你講思路吧,首先這是個三角形,用3個FOR循環打印,一個控制行,一個控制前面的空格,一個控制後面打的東西。
如:
for(){//控制行數
for(){//控制每行前面的空格
}
for(){//控制每行所打的東西
}
}
例如光打個三角形的,不管裏面的數字,那就這樣:
for(int hang=0;hang6;hang++){//控制行(hang)
for(int kongge=0;konggehang;kongge++){//控制前面空格
System.out.print(” “);
}
for(int neirong=6;neironghang;neirong–){//控制內容
System.out.print(“*”);
}
System.out.println();//打印完一行換行
}
第三個FOR循環裏面的neironghang(這個變量可以自己定,表示有對少內容,這個是大於行數,由行數來決定,因為行數循環一次增加一次,則內容就減少一個)
上面是每打一行,則少一個內容,而你的題目是少兩個,你數數,你的第一行有11個,第二就有9個了。
那就這樣:
int nr=11;//定義控制內容個數的變量nr
for(int hang=0;hang6;hang++){//控制行
for(int kongge=0;konggehang;kongge++){//控制空格
System.out.print(” “);
}
for(int neirong=nr;neirong0;neirong–){//看,內容等於nr
System.out.print(“*”);
}
nr=nr-2;//每循環完一次,nr減少2;
System.out.println();
}
看到了么第三個for循環里的neirong0,我寫的是0,也可以的,意思內容由nr決定,第一次循環是11個數字,結束後nr-2,下一次循環就是9個數字了,以此類推
————
好了,現在形狀已經打印出來了,那就把裏面的*改成變化的數字就可以了。首先你的數字是先是以3的倍數增加,然後到中間後,以3的倍數減少。你數數,每行都是從最中間開始變的,中間那個數最大。
那首先我想到的是寫兩個方法,一個乘,一個除。
一下是兩個方法:
public static int cheng(int num1){
num1=num1*3;
if(num1==0){
num1=1;
}
return num1;
}
public static int chu(int num1){
num1=num1/3;
return num1;
}
現在方法寫了,我們直接帶入進去就好了;
我給全部代碼:
public class San {//類名三
public static int cheng(int num1){//靜態乘法方法
num1=num1*3;//帶入的參數乘3
if(num1==0){//判斷如果參數是0,則直接返回1
num1=1;
}
return num1;//返回結果
}
public static int chu(int num1){//靜態方法除法
num1=num1/3;//參數直接除以3
return num1;//返回結果
}
public static void main(String[] args) {//程序入口main方法
int nr=11;//定義初始內容個數,11個
for(int hang=0;hang6;hang++){//第一個FOR循環,控制行
int chushi=0;//上面兩個參數的初始值0
for(int kongge=0;konggehang;kongge++){//控制空格
System.out.print(“\t”);//打印空格
}
for(int neirong=nr;neirong0;neirong–){//控制內容
int zhongjian=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)+”\t”);
chushi=cheng(chushi);
}else{//如果內容小於中間數,則實行除法
System.out.print(chu(chushi)+”\t”);
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個數,
那就是
1 3 9 27 81 243 81 27 9 3 1
11 10 9 8 7 6 5 4 3 2 1
6以前的都是執行乘法,5以後的都是執行的除法餓。
你自己在仔細看看吧
剛看了這個問題,臨時想的方法,可能不怎麼好,但是你也可以看一看。
java輸出如下的金字塔形的數字
import java.util.Scanner;
public class Exe_19 {
public static void main(String[] args){
System.out.print(“請輸入一個的數字:”);
Scanner input = new Scanner(System.in);
int a = input.nextInt();
for (int i = 1; i = a;i++){
for (int j = 0; j a – i;j++ )//打印空格
System.out.print(” “);
for (int k = 1; k = i ;k++)
System.out.printf(“%3.0f”,Math.pow(2,(k – 1)));//打印左半邊
for (int q = i;q 1;q–)
System.out.printf(“%3.0f”,Math.pow(2,(q – 2)));//打印右半邊
System.out.print(“\n”);
}
}
}
java打印金字塔數字,1.2.4.8.16…..這樣的數表用for語句應該怎麼寫啊
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
int a=10;
for(int i=1,int s=1,int a=10;i==a;i++,i=2*i) System.ouprintln(i);
// your code goes here
}
}
怎麼用java打印金字塔
public class work2 {
public static void main(String[] args) {
method(9);
}
//參數化控制行數
public static void method(int n){
for(int i = 1;i = n;i++){
//每行打印的空格
for(int j = 1;j = n – i;j++){
System.out.print(” “);
}
//每行打印的*
for(int k = 1;k = 2 * i – 1;k++){
System.out.print(“*”);
}
System.out.println();
}
}
}
編寫空心菱形金字塔的java程序
空心菱形金字塔的Java程序如下:
public class Test6 {
public static void main(String[] args) {
final int N=5;
for (int i = 1; i = N*2-1; i++) {
for (int j = 1; j = Math.abs(N – i); j++) {
System.out.print(” “);
}
for (int k = 1; k = 2*N-1-Math.abs(i-N)*2; k++) {
if(k==1 || k == 2*N-1-Math.abs(i-N)*2)
System.out.print(“*”);
else
System.out.print(” “);
}
System.out.println();
}
}
}
運行結果:
*
* *
* *
* *
* *
* *
* *
* *
*
原創文章,作者:MQOS,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/135299.html