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
*/