7-11古风排版

it2022-05-05  173

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; }

最新回复(0)