【Go语言入门150题】L1-039 古风排版 (20 分) Go语言 | Golang

举报
小生凡一 发表于 2021/10/15 22:39:16 2021/10/15
【摘要】 【题解】【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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。