7-11 古风排版
原创
©著作权归作者所有:来自51CTO博客作者tizzi的原创作品,请联系作者获取转载授权,否则将追究法律责任
import java.util.Scanner;
public class S7_11 {
static int n;
static char[] rec;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
sc.nextLine(); //消除换行影响
String str = sc.nextLine();
int tem = (n - (str.length() % n))%n;
for (int i = 0; i < tem; i++) {
str += " ";//添加多少个空格
}
rec = str.toCharArray();
f();
}
static void f() {
int col = rec.length / n; //表示一共有多少列
int start = (col - 1) * n;//表示第一行第一个字符的下标
for (int i = 0; i < n; i++) { //有n行
for (int j = 0; j < col; j++) {// 有col列
System.out.print(rec[start - j * n]);
}
start++;//从下一行的开始出发
if (i != n-1)System.out.println(); //最后一行不换行
}
}
}
#include<iostream>
#include<string>
using namespace std;
char arr[1005][105];
int main(){
string str;
int n,lie,count=0;
int len;
cin>>n;
getchar();
getline(cin,str);
len=str.length();
if(str.length()%n==0){
lie=str.length()/n;
}
else lie=str.length()/n+1;
for(int j=lie-1;j>=0;j--){
for(int i=0;i<n;i++){
if(count==len){
arr[i][j]=' ';
}
else arr[i][j]=str[count++];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<lie;j++){
cout<<arr[i][j];
}
if(i!=n-1){
cout<<endl;
}
}
return 0;
}