「java如何打印数字图形」打印出如下图案编程java

博主:adminadmin 2022-11-26 17:05:07 54

本篇文章给大家谈谈java如何打印数字图形,以及打印出如下图案编程java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中输入数字(1-9),打印图形

public class Test{

    public static void main(String[] args){

        int n = 3;

        int[][] s = Test.getSquare(n); 

        for(int[] i: s){

            for(int j: i){

                System.out.print(j);

            }

            System.out.println();

        }

        

    }

    public static int[][] getSquare(int n){

        int start = 1;

        int radius = 0;

        int[][] square= new int[2*n-1][2*n-1];

        for (int i = 0; i  2*n -1; i++){

            for (int j = 0; j 2*n -1; j++){

                int x = Math.abs(i - n + 1);

                int y = Math.abs(j - n + 1);

                radius = x  y? x:y;

                square[i][j] = start + radius;

            }

        }

        return square;

    }

}

/* output

33333

32223

32123

32223

33333

*/

怎样用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打印数字三角形

打印三角形实际上就是找规律输出对应的空或者数值。可以用以下方式实现:

//第一种打印方法

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

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

System.out.print(m);

}

System.out.println("");

}

//第二种打印方法

for(int n=3;n0;n--) {

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

System.out.print(m);

}

System.out.println("");

}

//第三种打印方法

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

for(int k=n;k3;k++) {

System.out.print(" ");

}

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

System.out.print(m);

}

System.out.println("");

}

//第四种打印方法

for(int n=3;n0;n--) {

for(int k=n;k3;k++) {

System.out.print(" ");

}

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

System.out.print(m);

}

System.out.println("");

}

java打印如下数字三角形?

可利用如下代码输出:

package print;

public class Test {

public static void main(String[] args) {

int n = 5;

int num = -1;

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

System.out.print(i);

if(i == n){

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

System.out.print("  ");

System.out.print(n + j);

}

}else{

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

System.out.print(" ");

int end = n * 2 - 1 + n - i;

if(num == -1){

num = end;

}

if(j == 1){

System.out.print(end);

}else{

num = num + 1;

System.out.print(num);

}

}

}

/*换行*/

System.out.println();

}

}

}

输出结果:

Java程序,编程输出如下数字图案,最好带解释!

其实只要算出第i行第j列的数是第几个数就行了(数的排列规律应该能看出来吧)

第i行第j列的数在第(i+j)条对角线上(从零开始),前面就有i+j条对角线

数的个数就是1+2+...+(i+j),在加上同一条对角线上前面的数的个数为j

所以公式就出来了 代码如下,请采纳

class  Main

{

 public static void main(String[] args) 

 {

  for(int i=0;i5;i++)

  {

   for(int j=0;j5-i;j++)

   {

    int n = (1+i+j)*(i+j)/2+j+1;

    System.out.print(n+" ");

   }

   System.out.println();

  }

 }

}

求编程输出如下数字图案的代码?

按照你的要求编写的输出数字图案的Java程序如下

public class M{

public static void main(String[] args) {

int i,j,k,index,count=1,N=5;

int arr[][]=new int[N][N];

for(index=1;index=N;index++){

i=0;

j=index-1;

for(k=1;k=index;k++){

  arr[j][i]=count++;

  i++;

  j--;

}

}

for(i=0;iN;i++){

for (j=0;jN-i;j++){

  System.out.print(arr[i][j]+" ");

}

System.out.println();

}

}

}

关于java如何打印数字图形和打印出如下图案编程java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-26,除非注明,否则均为首码项目网原创文章,转载请注明出处。