L1-039 古风排版 (20 分) Go语言|Golang
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。
输入样例1:
4 This is a test case
结尾无空行
输出样例1:
asa T st ih e tsi ce s
结尾无空行
思路:
这题就是先用字符串长度除以这个字符数,然后安装规律进行填写一个二维数组就行了~
但是!!我还是卡在了输入。。。思路应该是没问题的~
代码如下:
package main import "fmt" func main() { var num int var str string c:=0 num = 4 str ="This is a test case" row:=len(str)/num flag := false var result [100][100]rune for i := row ; i >= 0 ; i-- { for j := 0 ; j < num ; j++ { if c == len(str) { // 注意如果没有这个的话,可能由于下面的不足而导致str的下标爆掉 flag=true // 因为 break } result[j][i] = rune(str[c]) c++ } if flag { break } } for i := 0; i < row; i++ { for j:=0;j<=num;j++{ fmt.Printf("%c",result[i][j]) } if i != row-1 { fmt.Println() } } } /* 4 This is a test case */