面试题随手练(二):打印实心菱形(对角线基数)

小张哥面试题2:打印一个对角高度为10的菱形,用*号表示。

我先做了一个打印对角高度为5的菱形,但是不具备普遍性,只适合5的情况,后来从网上找到了打印实心菱形,对角线为基数的打印实心的代码,就当代码积累了

    public static void main(String[] args) {

        for(int i=0;i<3;i++){
            for(int j=2-i;j>0;j--)
            {
                System.out.print(" ");
            }
            for(int m=0;m2+1;m++)
            {
                System.out.print("*");
            }
            System.out.println("");
        }

        for(int n=0;n<2;n++){
            for(int k=0;k1;k++)
            {
                System.out.print(" ");
            }
            for(int l=0;l<3-n*2;l++)
            {
                System.out.print("*");
            }
            System.out.println("");
        }
    }

面试题随手练(二):打印实心菱形(对角线基数)_第1张图片

public static void main(String[] args) {

        int lay;
        lay=11;
        for(int i=0;i<(lay+1)/2;i++){
            for(int j=1;j<=lay/2-i;j++)
            {
                System.out.print(" ");
            }
            for(int m=0;m2+1;m++)
            {
                System.out.print("*");
            }
            System.out.println("");
        }

         for(int d =(lay+1)/2-1;d >= 1; d --)//倒序输出下半部分
            {
                for(int b = 1; b <= (lay+1)/2-d; b++)//输出空格
                {
                    System.out.print(" ");
                }
                for(int c = (lay+1)/2-d; c <=(lay+1)/2-2+d; c ++)//(lay+1)/2-1即为下半个三角形
                {
                    System.out.print("*");    
                }
                System.out.println();
            }

    }

面试题随手练(二):打印实心菱形(对角线基数)_第2张图片

总结:

其实打印菱形的代码要随机应变,无非就是静下心来找规律,这道题主要考察的就是for循环的使用

你可能感兴趣的:(♥,随便玩玩)