天天看點

【Go語言入門100題】039 古風排版 (20 分) Go語言 | Golang

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