网站建设资讯

NEWS

网站建设资讯

java倒半数字金字塔代码 输出倒金字塔的程序

如何用JAVA 编写一个递归程序输出如下数字金字塔

这是我刚才编写的用于输出金字塔的一个类。完整的代码。//输出金字塔importjava.util.Scanner;publicclassa1{publicstaticvoidmain(String[]args){Scannera=newScanner(System.in);intN=5;//定义行数的变量booleanb=true;do{try{System.out.println("请输入整数类型的数字:");N=a.nextInt();//获取输入行数b=false;}catch(Exceptionea){a=newScanner(System.in);//N=a.nextInt();//获取输入行数}}while(b);inti,j,m;for(i=0;iN;i++)//输出金字塔{for(m=0;mN-1-i;m++){System.out.printf("");}for(j=0;j2*i+1;j++){System.out.printf("*");}System.out.printf("\n");}}}

成都创新互联专注于莒南网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供莒南营销型网站建设,莒南网站制作、莒南网页设计、莒南网站官网定制、成都微信小程序服务,打造莒南网络公司原创品牌,更为您提供莒南网站排名全网营销落地服务。

求JAVA实现数字金字塔

package baidu;

import java.util.Scanner;

public class JinZTa {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in = new Scanner(System.in);

System.out.println("请输入一个数字");

if (in.hasNextInt()) {

show(in.nextInt());

}else{

System.out.println("输入的内容有误");

}

}

public static void show(int n) {

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

for (int j = 0; j Math.abs(i - n); j++) {

System.out.print(" ");

}

for (int j = i; j = 1; j--) {

System.out.print(j);

}

for (int j = 2; j = i; j++) {

System.out.print(j);

}

System.out.println();

}

}

}

用java把1-100这100个数字按顺序排成金字塔形状,尽量用最简单的代码实现

你好,除了直接用多个System.out.println(xxx);直接打印出三角形外,我的代码最简单,而且给足了注释,可以直接运行

public class t {

public static void main(String[] args) {

int no=1;//要打印的数

for(int i=1;no=100;i++){//第1行1个数,第n行n个数,结束条件是打印的数=100

for(int j=1;j=i;j++){

System.out.print(no+++"\t");

}

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

}

}

}

结果:

1

2 3

4 5 6

7 8 9 10

11 12 13 14 15

16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31 32 33 34 35 36

37 38 39 40 41 42 43 44 45

46 47 48 49 50 51 52 53 54 55

56 57 58 59 60 61 62 63 64 65 66

67 68 69 70 71 72 73 74 75 76 77 78

79 80 81 82 83 84 85 86 87 88 89 90 91

92 93 94 95 96 97 98 99 100 101 102 103 104 105

怎样用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倒半数字金字塔代码 输出倒金字塔的程序
网页地址:http://cdweb.net/article/dogccji.html