中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)
输入样例:4 This is a test case输出样例:
asa T st ih e tsi ce s
思路:观察题,第一行的输入也就表示输出的行n,如果字符串的长度取余n!=0,则lie等于行数加1,然后定义一个二维数组,要对其先进行初始化(因为最后的输出最后一列少的部分应该是空格,而不是char数组默认的空字符),然后找到字符串长度和二维数组的行列下表的关系
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
scanner.nextLine();
String s = scanner.nextLine();
char ch[] = s.toCharArray();
int lie = ch.length / n;
if(ch.length % n != 0){
lie = lie + 1;
}
char ch1[][] = new char[n][lie];
for(int i = 0; i < n; i++){
for(int j = 0; j < lie; j++){
ch1[i][j] = ' ';
}
}
int l = lie - 1;
int count = 0;
for(int i = 0; i < ch.length; i++){
ch1[i % n][l] = ch[i];
count++;
if(count % n == 0){
l--;
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < lie; j++){
System.out.print(ch1[i][j]);
}
System.out.println();
}
scanner.close();
}
}