Java基础_循环嵌套_打印乘法口诀、菱形,各种图形,计算二元一次和三元一次方程组_7

循环嵌套

打印乘法口诀在这里插入图片描述

				for(int j=1;j<=9;j++){
                        for(int i=1;i<=j;i++){
                                System.out.print(i+"*"+j+"="+i*j+"	");
                        }
                        //换行
                        System.out.println();
                  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

倒乘法口诀

在这里插入图片描述

			 for(int j=9;j>=1;j--){
                        for(int i=1;i<=j;i++){
                                System.out.print(i+"*"+j+"="+i*j+"	");
                        }
                        //换行
                        System.out.println();
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

打印长方形

在这里插入图片描述

		for(int j=1;j<=4;j++){//j:控制行数
                        //*********
                        for(int i=1;i<=9;i++){//i:控制*的个数
                                System.out.print("*");
                        }
                        //换行:
                        System.out.println();
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

距离前面有一定空隙的长方形:

在这里插入图片描述

 	   for(int j=1;j<=4;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(9-j);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=9;i++){//i:控制*的个数
                                System.out.print("*");
                        }
                        //换行:
                        System.out.println();
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

平行四边形

在这里插入图片描述

		for(int j=1;j<=4;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(9-j);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
                                System.out.print("*");
                        }
                        //换行:
                        System.out.println();
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

打印三角形

在这里插入图片描述

for(int j=1;j<=4;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(9-j);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
                                System.out.print("*");
                        }
                        //换行:
                        System.out.println();
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

打印菱形

在这里插入图片描述

可以看成两个三角形拼成一个菱形

				//上面三角形:
                for(int j=1;j<=4;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(9-j);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
                                System.out.print("*");
                        }
                        //换行:
                        System.out.println();
                }
                
                //下面三角形:
                for(int j=1;j<=3;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(j+5);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=(7-2*j);i++){//i:控制*的个数
                                System.out.print("*");
                        }
                        //换行:
                        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

打印空心菱形

在这里插入图片描述

			//上面三角形:
                for(int j=1;j<=4;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(9-j);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
                                if(i==1||i==(2*j-1)){
                                        System.out.print("*");
                                }else{
                                        System.out.print(" ");
                                }
                        }
                        //换行:
                        System.out.println();
                }
                
                //下面三角形:
                for(int j=1;j<=3;j++){//j:控制行数
                        //加入空格:
                        for(int i=1;i<=(j+5);i++){//i:控制空格的个数
                                System.out.print(" ");
                        }
                        //*********
                        for(int i=1;i<=(7-2*j);i++){//i:控制*的个数
                                if(i==1||i==(7-2*j)){
                                        System.out.print("*");
                                }else{
                                        System.out.print(" ");
                                }
                        }
                        //换行:
                        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

进阶打印菱形和空心菱形(换一种思路)

菱形

可以把菱形看成一个正方形,在相应位置打空,在相应位置打*

public class TestFor14{
    public static void main(String[] args){
                //先打印出一个正方形,然后某些位置上打印* 某些位置上打印空格:
                int size = 17;
                int startNum = size/2+1;//起始列号
                int endNum = size/2+1;//结束列号
                //引入一个布尔类型的变量---》理解为“开关”
                boolean flag = true;
                for(int j=1;j<=size;j++){
                        //*****
                        for(int i=1;i<=size;i++){
                                if(i>=startNum&&i<=endNum){
                                        System.out.print("*");
                                }else{
                                        System.out.print(" ");
                                }
                        }
                        //换行
                        System.out.println();
                        if(endNum==size){
                                flag = false;
                        }
                        
                        if(flag){//flag是true相当于在菱形的上半侧   flag是false相当于在菱形的下半侧
                                startNum--;
                                endNum++;
                        }else{
                                startNum++;
                            endNum--;
                        }
                }
        }
}
  • 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

空心菱形

public class TestFor14{
    public static void main(String[] args){
                //先打印出一个正方形,然后某些位置上打印* 某些位置上打印空格:
                int size = 17;
                int startNum = size/2+1;//起始列号
                int endNum = size/2+1;//结束列号
                //引入一个布尔类型的变量---》理解为“开关”
                boolean flag = true;
                for(int j=1;j<=size;j++){
                        //*****
                        for(int i=1;i<=size;i++){
                                if(i==startNum||i==endNum){//和实心菱形只有这行不一样
                                        System.out.print("*");
                                }else{
                                        System.out.print(" ");
                                }
                        }
                        //换行
                        System.out.println();
                        if(endNum==size){
                                flag = false;
                        }
                        
                        if(flag){//flag是true相当于在菱形的上半侧   flag是false相当于在菱形的下半侧
                                startNum--;
                                endNum++;
                        }else{
                                startNum++;
                            endNum--;
                        }
                }
        }
}
  • 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

计算二元一次方程组

1<=a<=5
3<=b<=6
求出a+b=7中a和b的所有可能性

    public static void main(String[] args){
                for(int a=1;a<=5;a++){
                        for(int b=3;b<=6;b++){
                                if(a+b==7){
                                        System.out.println(a+"----"+b);
                                }
                        }
                }
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

三元一次方程组

百钱买白鸟

公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

	数学:
		设未知数:
		公鸡:x只
		母鸡:y只
		小鸡:z只
		x+y+z=100只
		5x+3y+z/3=100钱
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

方式1(比较麻烦)

      for(int x=1;x<=100;x++){
                        for(int y=1;y<=100;y++){
                                for(int z=1;z<=100;z++){
                                        if((x+y+z==100)&&(5*x+3*y+z/3==100)&&(z%3==0)){
                                                System.out.println(x+"	"+y+"	"+z);
                                        }
                                }
                        }
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

方式2(优化)

100文做多买公鸡19只,母鸡31只,小鸡100-公鸡-母鸡

		for(int x=1;x<=19;x++){
                        for(int y=1;y<=31;y++){
                                int z = 100-x-y;
                                if((5*x+3*y+z/3==100)&&(z%3==0)){
                                        System.out.println(x+"	"+y+"	"+z);
                                } 
                        }
                }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

有不懂的地方可以私信~

内容来源于马士兵教育赵姗姗老师的Java笔记。

原文章:https://blog.csdn.net/qq_44173324/article/details/112093354

原文地址:https://www.cnblogs.com/tfil/p/14228332.html