欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-08-29 08:55:32
循环嵌套打印乘法口诀for(int j=1;j<=9;j++){ for(int i=1;i<=j;i++){ System.out.print(i+"*"+j+"="+i*j+"\t"); } //换行 System.out.pr...

循环嵌套

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

				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

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

打印长方形

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

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

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

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

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

平行四边形

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

		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

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

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

				//上面三角形:
                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

			//上面三角形:
                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笔记。

本文地址:https://blog.csdn.net/qq_44173324/article/details/112093354