首页 > 其他分享 >打印空心金字塔_Golang实现

打印空心金字塔_Golang实现

时间:2023-10-30 22:14:37浏览次数:37  
标签:star int 打印 空心 Golang 层数 var 金字塔

                                                *
                                        *               *
                                *                               *
                        *                                               *
                *                                                               *
        *                                                                               *
*       *       *       *       *       *       *       *       *       *       *       *       *

需求:在控制台打印如上图所示的效果图

解题思路:

  • 首先简化问题,用嵌套for循环打印出实心金字塔,由题可观察得知,层数与star(星号)数量保持着一定关系(奇数队列),1、3、5、7……2n-1
  • 然后,格式化打印效果,即打印制表符(每一行先打印制表符,再打印star)
  • 最后,用condition语句if,将实心改为空心(即金字塔的边界打印star)
func main() {
    // 当前行
	var i int
    // 当前star序号
	var j int
	// 金字塔层数
	var limit int
	fmt.Println("请输入金字塔的层数")
	_, _ = fmt.Scanln(&limit)
	for i = 1; i <= limit; i++ {
        // 制表符
		printTable(i, limit)
		for j = 1; j <= 2*i-1; j++ {
            // 边界起点star,边界终点star,最后一行star
			if j == 1 || j == 2*i-1 || i == limit {
                // star
				fmt.Printf("*\t")
			} else {
                // 空心
				fmt.Printf(" \t")
			}
		}
		fmt.Println()
	}
}

func printTable(row int, limit int) {
    // 例如一个五层的金字塔,第一行需要4个制表符,第二行需要3个制表符……
    // 规律,当前行row需要打印的制表符个数 = 金字塔层数limit - 当前行数row
	for i := 1; i <= limit-row; i++ {
		fmt.Printf("\t")
	}
}

 

标签:star,int,打印,空心,Golang,层数,var,金字塔
From: https://www.cnblogs.com/ashet/p/17798982.html

相关文章

  • 一个轻量级golang ORM框架gdbcTemplate
    今天介绍一个自己写的轻量级golangORM框架gdbcTemplate,目前支持mysql,postgresql等数据库项目地址位于https://github.com/guoapeng/gdbctemplate以下摘自readme文件,里面有示例供参考.1.readmefilealightweightgolangORMframeworksimilartojdbcinjavatech......
  • 抓住重点的思考能力如何训练,批判性思维和金字塔原理
    读教科书感觉有点晦涩,阅读英文文章有时候不能抓住重点,感觉需要训练自己这方面的能力,多看看纸质书。其实我觉得我和别人交流的时候,有那种答非所问的倾向,说明我不善于抓住重点。当然一方面是因为我可能要忽略那些我不想回答的东西,另一方面就是思考能力的缺乏了为什么有人思考问题......
  • golang 中使用 writev (sendmsg) 系统调用来一次发送多块数据
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯writev,或者说sendmsg等系统调用,能够发送多个数据块。从节约系统调用次数的角度说,这个api非常好。下面演示如何在golang中使用sendmsg系统调用:funcsendmsg......
  • 云端golang开发,无需本地配置,能上网就能开发和运行
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos需求学习golang的时候,需要一个IDE,还需要一个能运行程序的环境,以及一个MySQL数据库对于有经验的程序员来说,自己动手安装部署即可,但是小白和懒人也是存在的...背景背......
  • golang 获取 mongo 数据库状态
    命令行模式navicatgolangpackagemainimport( "context" "encoding/json" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-drive......
  • Nacos相关技术文档&Golang操作Nacos实现配置监听的代码
    Nacos相关技术文档Nacos中文文档~~~(三)Nacos开发教程之服务数据持久化(四)Nacos开发教程之SpringCloud集成服务注册(参考,后续用go实现)(五)Nacos开发教程之SpringCloud集成配置管理(参考,后续用go实现)(六)Nacos开发教程之后台系统使用~~~Mac-M1电脑本地使用docker搭建Nacos-Server参考:http......
  • golang的Leaf框架安装步骤
    最近在学习golang的Leaf游戏服务器框架(官方github),官方的安装步骤,非常简单,如下图:我在安装的时候也遇到一些疑问,因此记录下来我的实操步骤!1、我的现有GOPATH=E:\Go,src目录下有一些做过的项目2、获取LeafServer,我在src目录下clone的,遵循以前的原则,项目文件都放到GOPATH的src目录......
  • Golang Gin 实战(一)| 快速安装入门
    Gin 是一个非常优秀的GolangWebFramework,它不光API友好,性能也非常高,并且设计简洁,便于入门。所以它(Gin)非常受欢迎,在Github上已经三万三千多个星星,也是我最喜欢的Web框架。  入门要求要想使用GolangGin这个框架,你必须要得会Golang这门语言,如果你还没有开始学,我强烈推荐给你,......
  • golang validator 检验工具的使用指北
    golangvalidator包的使用指北原创阿兵云原生阿兵云原生2023-09-1009:27发表于广东看到validator咱们第一反应会想起啥?见名知意我就可以知道他是一个验证器,如果用过ginweb框架的同学,自然是用过gin里面的validator,只不过gin中使用的关键字是binding去做标识 ......
  • Golang logrus用法
    packagexlogimport( "bufio" "fmt" "github.com/sirupsen/logrus"rotatelogs"github.com/lestrrat-go/file-rotatelogs""github.com/rifflock/lfshook" "os" "time")typeConf......