【Go语言入门150题】L1-039 古风排版 (20 分) Go语言 | Golang
【摘要】
【题解】【PTA团体程序设计天梯赛】
L1-039 古风排版 (20 分) Go语言|Golang
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
...
【题解】【PTA团体程序设计天梯赛】
L1-039 古风排版 (20 分) Go语言|Golang
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。
输入样例1:
4
This is a test case
- 1
- 2
结尾无空行
输出样例1:
asa T
st ih
e tsi
ce s
- 1
- 2
- 3
- 4
结尾无空行
思路:
这题就是先用字符串长度除以这个字符数,然后安装规律进行填写一个二维数组就行了~
但是!!我还是卡在了输入。。。思路应该是没问题的~
代码如下:
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
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
文章来源: blog.csdn.net,作者:小生凡一,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45304503/article/details/119859235
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)