for循环的一些经典例题

只愿长相守 提交于 2020-02-12 00:32:05

做这些题首先要找规律

发现这个题跟y=|x|+1有关

/*
 4  3  2  1 2 3 4
-3 -2 -2  0 1 2 3
第4行 x∈[-3,3] y=|x|+1
第5行 x∈[-4,4] y=|x|+1
*/
import java.util.Scanner;
class Demo03_14{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入行数:");
        int line=scanner.nextInt();
        for(int i=1;i<=line;i++){//我们打印的行数
            for(int k=1;k<=(line-i);k++){//我们前面要空出来的格数
                if(line<10){//这里我们这个是想把这个金字塔打印整齐
                    System.out.print("  ");
                }else{
                    System.out.print("   ");
                }
            }
            for(int x=-(i-1);x<=i-1;x++){//我们所需要打印的数字
                if(line<10){
                    System.out.printf("%-2d",Math.abs(x)+1);// Math.abs(x)+1我们所发现的规律
                }else{
                    System.out.printf("%-3d",Math.abs(x)+1);
                }
            }
            System.out.println();
        }
    }
}

class Demo03_15{
    public static void main(String[] args){
        for(int i=1;i<=6;i++){//控制行数
            for(int j=1;j<=i;j++){//控制所打印的数字
                System.out.print(j+" ");
            }
            System.out.println();
        }
        System.out.println("==========");
        for(int i=1;i<=6;i++){//控制行数
            for(int j=1;j<=7-i;j++){//控制所打印的数字
                System.out.print(j+" ");
            }
            System.out.println();
        }
        System.out.println("==========");
        for(int i=1;i<=6;i++){//控制行数
            for(int k=1;k<=6-i;k++){//控制前面的空格数
                System.out.print("  ");
            }
            for(int j=i;j>=1;j--){//数字从大到小打印
                System.out.print(j+" ");
            }
            System.out.println();
        }
        System.out.println("==========");
        for(int i=1;i<=6;i++){//控制行数
            for(int k=1;k<=i-1;k++){//控制空格数
                System.out.print("  ");
            }
            for(int j=1;j<=7-i;j++){//数字从小到大,但是每次越打越少
                System.out.print(j+" ");
            }
            System.out.println();
        }
    }
}

 

/*
让我们先看一下第4行  
         1  2  4 8 4 2 1
         0  1  2 3 2 1 0
      x -3 -2 -1 0 1 2 3
第5行
        1 2 4 8 16 8 4 2 1
        0 1 2 3 4  3 2 1 0
    x  -4-3-2-1 0  1 2 3 4
*/
class Demo03_16{
    public static void main(String[] args){
        for(int i=1;i<=8;i++){//控制行数
            for(int k=1;k<=8-i;k++){//控制空个数
                System.out.print("    ");
            }
            for(int x=-(i-1);x<=i-1;x++){ 
                System.out.printf("%4d",(int)Math.pow(2,i-1-Math.abs(x))); //y=i-1-|x|
            }
            System.out.println();
        }
    }
}
/*
对于打印一些对称性的三角形图案或者是类似的问题
尽量向绝对值考虑
*/

这就是一些最经典的用For循环所画的一些图。

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!