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

循环嵌套

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

				for(int j=1;j<=9;j++){
     
                        for(int i=1;i<=j;i++){
     
                                System.out.print(i+"*"+j+"="+i*j+"\t");
                        }
                        //换行
                        System.out.println();
                  }

倒乘法口诀

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

			 for(int j=9;j>=1;j--){
     
                        for(int i=1;i<=j;i++){
     
                                System.out.print(i+"*"+j+"="+i*j+"\t");
                        }
                        //换行
                        System.out.println();
                }

打印长方形

在这里插入图片描述

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

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

在这里插入图片描述

 	   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();
                }

平行四边形

在这里插入图片描述

		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<=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();
                }

打印菱形

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

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

				//上面三角形:
                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();
                }

打印空心菱形

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

			//上面三角形:
                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();
                }

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

菱形

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

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--;
                        }
                }
        }
}

空心菱形

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<=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);
                                }
                        }
                }
        }

三元一次方程组

百钱买白鸟

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

	数学:
		设未知数:
		公鸡:x只
		母鸡:y只
		小鸡:z只
		x+y+z=1005x+3y+z/3=100

方式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+"\t"+y+"\t"+z);
                                        }
                                }
                        }
                }

方式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+"\t"+y+"\t"+z);
                                } 
                        }
                }

有不懂的地方可以私信~

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

你可能感兴趣的:(Java从小白开始学习,java)