7-16 古風排版(20 分)
中國的古人寫文字,是從右向左豎向排版的。本題就請你編寫程序,把一段文字按古風排版。
輸入格式:
輸入在第一行給出一個正整數N(<100),是每一列的字符數。第二行給出一個長度不超過1000的非空字符串,以回車結束。
輸出格式:
按古風格式排版給定的字符串,每列N個字符(除了最後一列可能不足N個)。
輸入樣例:
4
This is a test case
輸出樣例:
asa T
st ih
e tsi
ce s
#include<bits/stdc++.h>
using namespace std;
char C[1005][1005];
int main()
{
int n,m,k,j;
char s[1005];
cin >> n;
getchar(); //用這個來接收空格
cin.get(s,1005);
int len = strlen(s);
m = len/n;
if(len%n != 0) m++;
int i = 0;
for( k = m-1; k >= 0; k--){
for(j = 0; j < n; j++){
if(i < len)
C[j][k] = s[i++];
else
C[j][k] = ' '; //當長度超過len時直接賦值空格。
}
}
for(j = 0; j < n; j++){ // 最後輸出。
for(k = 0; k < m; k++)
cout << C[j][k];
cout << endl;
}
return 0;
}