Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打印下面的图案_Java_Loops_Nested Loops - Fatal编程技术网

Java 如何打印下面的图案

Java 如何打印下面的图案,java,loops,nested-loops,Java,Loops,Nested Loops,对于给定的输入,我需要打印模式。例如,对于input=6,我必须打印: MMMMMMSDDDDDD MMMMMSSSDDDDD MMMMSSSSSDDDD MMMSSSSSSSDDD MMSSSSSSSSSDD MSSSSSSSSSSSD CSSSSSSSSSSSK CCSSSSSSSSSKK CCCSSSSSSSKKK CCCCSSSSSKKKK CCCCCSSSKKKKK CCCCCCSKKKKKK 我已经试过了,但是没有人能帮助我 public class tgk { public

对于给定的输入,我需要打印模式。例如,对于input=6,我必须打印:

MMMMMMSDDDDDD
MMMMMSSSDDDDD
MMMMSSSSSDDDD
MMMSSSSSSSDDD
MMSSSSSSSSSDD
MSSSSSSSSSSSD
CSSSSSSSSSSSK
CCSSSSSSSSSKK
CCCSSSSSSSKKK
CCCCSSSSSKKKK
CCCCCSSSKKKKK
CCCCCCSKKKKKK 
我已经试过了,但是没有人能帮助我

public class tgk {

public static void main(String[] args)  {

    Scanner sc = new Scanner(System.in);

    int size = sc.nextInt();

    int half = ((2*size)+1)/2;
     for (int i = 0; i < size ; i++) 
     { 
         for (int j = size; j > i; j--) 
         {
         System.out.print("M");
          }
     for (int k = half+1 ; k > half - i; k--) 
     {
         System.out.print("S");
     }






    System.out.println();
 }


     for(int i = size; i > 0; i--)
     {
         for (int j = size; j >= i; j--) {
             System.out.print("C");
         }
         for (int k = 0; k < (i * 2 - 1); k++) {
             System.out.print("S");
         }



         System.out.println();
     }
}

}
可以使用两组for循环打印图案的每一半。假设输入变量保持问题的大小

int input = 3;

for (int i = 0; i < input; i++) {
    for (int j = 0; j < input - i; j++) {
        System.out.print('M');
    }
    for (int j = 0; j < 2 * i + 1; j++) {
        System.out.print('S');
    }
    for (int j = 0; j < input - i; j++) {
        System.out.print('D');
    }
    System.out.println();
}
for (int i = input - 1; i >= 0; i--) {
    for (int j = 0; j < input - i; j++) {
        System.out.print('C');
    }
    for (int j = 0; j < 2 * i + 1; j++) {
        System.out.print('S');
    }
    for (int j = 0; j < input - i; j++) {
        System.out.print('K');
    }
    System.out.println();
}
对于输入=6:


我不知道为什么,但我真的希望它只使用一组for循环:

    int number = 8;

    for (int i = 0; i < number * 2; i++) {
        for (int j = 0; j < (number * 2) + 1; j++) {
            System.out.print(
                i <  number && j+i < number ?    'M' :
                i <  number && j-i > number ?    'D' :
                i <  number                 ?    'S' :
                i >= number && i-j >= number ?   'C' :
                i >= number && j+i >= number*3 ? 'K' :
                                                 'S'
            );
        }
        System.out.println();
    }
…或3:


我不太清楚6与您希望打印的图案有什么关系。也许你可以澄清一下。这个描述准确吗:你需要输出一个输入+1 x输入的矩形,菱形是。角点是适合输入x输入的三角形,从左上角顺时针填充“M”、“D”、“C”、“K”。
MMMSDDD
MMSSSDD
MSSSSSD
CSSSSSK
CCSSSKK
CCCSKKK
MMMMMMSDDDDDD
MMMMMSSSDDDDD
MMMMSSSSSDDDD
MMMSSSSSSSDDD
MMSSSSSSSSSDD
MSSSSSSSSSSSD
CSSSSSSSSSSSK
CCSSSSSSSSSKK
CCCSSSSSSSKKK
CCCCSSSSSKKKK
CCCCCSSSKKKKK
CCCCCCSKKKKKK
    int number = 8;

    for (int i = 0; i < number * 2; i++) {
        for (int j = 0; j < (number * 2) + 1; j++) {
            System.out.print(
                i <  number && j+i < number ?    'M' :
                i <  number && j-i > number ?    'D' :
                i <  number                 ?    'S' :
                i >= number && i-j >= number ?   'C' :
                i >= number && j+i >= number*3 ? 'K' :
                                                 'S'
            );
        }
        System.out.println();
    }
MMMMMMMMSDDDDDDDD
MMMMMMMSSSDDDDDDD
MMMMMMSSSSSDDDDDD
MMMMMSSSSSSSDDDDD
MMMMSSSSSSSSSDDDD
MMMSSSSSSSSSSSDDD
MMSSSSSSSSSSSSSDD
MSSSSSSSSSSSSSSSD
CSSSSSSSSSSSSSSSK
CCSSSSSSSSSSSSSKK
CCCSSSSSSSSSSSKKK
CCCCSSSSSSSSSKKKK
CCCCCSSSSSSSKKKKK
CCCCCCSSSSSKKKKKK
CCCCCCCSSSKKKKKKK
CCCCCCCCSKKKKKKKK
MMMSDDD
MMSSSDD
MSSSSSD
CSSSSSK
CCSSSKK
CCCSKKK