导航:首页 > 编程语言 > 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数字金字塔相关的资料

热点内容
3j指标源码怎么用 浏览:862
出发命令 浏览:180
比较低碳钢和铸铁在压缩 浏览:319
天眼精准打击指标源码 浏览:938
pythondataframe 浏览:451
单片机的继电器原理图怎么画 浏览:895
自学程序员好考吗 浏览:978
还款解压再质押 浏览:970
doc2pdf 浏览:392
Android提示为空 浏览:623
sql预编译和执行的语法 浏览:111
复盛压缩机选型软件 浏览:746
android培训大纲 浏览:60
docker镜像内编译 浏览:861
缴纳社保app哪个好 浏览:416
哪个app跑步有钱 浏览:58
货币理论pdf 浏览:428
python35键盘输入 浏览:289
安卓手机头部自定义怎么取消 浏览:26
python套利交易 浏览:790