解题思路:在我看来,本题的难点不在于打印方式,而在于接收字符串。字符串中的字符可以是空格,因此不能用next()来接收 ,应该用nextLine();另一方面,在接受完整数N时,会在键盘中输入换行符,因此还要注意对于此换行符对于接收字符串的影响,解决办法是在nextInt()后加入一个nextLine()。
import java.util.;
public class Main{
    public static void main(String arg[]){
        Scanner scan=new Scanner(System.in);
        int N=scan.nextInt();
        scan.nextLine();
        String str=new String();
        str=scan.nextLine();
        int m=(N-1)/3;
        int t1=0,t2=0;
        int j=0;
        for(int i=m-1;i>=0;i--){
            while(t1>0) {
                System.out.print(" ");
                t1--;
            }
            t1=m-i;
            System.out.print(str.charAt(j));
            j++;
            t2=2i+1;
            while(t2!=0){
                System.out.print(" ");
                t2--;
            }
            System.out.print(str.charAt(j));
            j++;
            System.out.println();
        }
        for(;j<N;j++){
            t1=m;
            while(t1>0){
                System.out.print(" ");
                t1--;
            }
            System.out.println(str.charAt(j));
        }
    }
}

 京公网安备 11010502036488号
京公网安备 11010502036488号