golang for经典练习 金字塔打印 示例 支持控制台输入要打印的层数

go语言中最经典的for练习程序 金字塔打印 ,这也是其他语言中学习循环和条件算法最为经典的联系题。 其核心算法是如何控制内层循环变量j 每行打印的*号数量  j<=i*2-1 和空格数量 j==1 || j == i*2-1

golang中实现实心金字塔 Solid Pyramid和空心金字塔 Hollow Pyramid 效果

go语言金字塔打印经典源码和算法

package mainimport "fmt"// 金字塔打印实例
func main() {// 定义金字塔的总层数 变量var totalLevel intfmt.Println("请输入要打印的金字塔的层数,最少3层")fmt.Scan(&totalLevel) // 从控制台获取用户输入的层数if totalLevel < 3 {fmt.Println("层数不正确,必须大于等于3, 请重新输入")fmt.Scan(&totalLevel)}// 实心金字塔 solid PyramidSolidPyramid(totalLevel)// 空心金字塔 Hollow PyramidHollowPyramid(totalLevel)
}/*
// 实心金字塔 Solid Pyramid************************************
*/
// 金字塔的关键是计算每层的*号和空格的个数
func SolidPyramid(totalLevel int) {fmt.Println("\n-------------实心金字塔 Solid Pyramid-------------------\n")// 金字塔打印// 外层循环打印层数for i := 1; i <= totalLevel; i++ {// 在打印*号前打印空格, 要打印空格的个数计算公式为:  总层数 - 当前层数ifor k := 1; k <= totalLevel-i; k++ {fmt.Printf(" ")}// 内层循环打印*的个数// *的个数为 斐波那契数列(即 后一个是前一个+当前的和)// 1, 3, 5, 7, 9, 11 ... 即: 奇数// 分析后*的个数可由: 2 * 层数 -1 获得// 即这里的循环条件是 2 * i -1for j := 1; j <= 2*i-1; j++ {fmt.Printf("*")}//每层循环打印一个空额fmt.Println("")}}/*
// 空心金字塔 第一个*号和最后一个星号 2*i-1 ,还有最后一层 打印*号, 其他打印空格** **   **     **       ************
*/
func HollowPyramid(totalLevel int) {fmt.Println("\n-------------空心金字塔 Hollow Pyramid -------------------\n")// 打印空心金字塔for i := 1; i <= totalLevel; i++ {//打印空格for k := 1; k <= totalLevel-i; k++ {fmt.Printf(" ")}// 打印空心金字塔内容, 这里的关键是空心的个数// 第一个 j==1 和最后一个 2*i-1 ,打印*, 另外最后一层 i == totalLevel 打印*// 空格的个数计算公式:for j := 1; j <= 2*i-1; j++ {// 第一个*和最后一个*即2*当前层数-1, 还有最后一行打 * 其他空格if j == 1 || j == 2*i-1 || i == totalLevel {fmt.Printf("*")} else {fmt.Printf(" ")}}fmt.Println("")}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/321112.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何根据IP获取国家省份城市名称PHP免费版

最近项目遇到需要根据IP获取用户国家功能需求&#xff0c;网上找了一下&#xff0c;很多API接口都需要付费&#xff0c;考虑为公司节约成本&#xff0c;就取找找有没有开源的 github 上面那个包含多种语言&#xff0c;下面这个只有php&#xff0c;用法很简单 $ip 114.114.114…

华为eNSP中型企业局域网网络规划设计(下)

→b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;上&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩← 配置ospf AR3 [AR3]ospf 1 router-id 3.3.3.3 //出口默认路由 [AR3-ospf-1]default-route-advertise always #area…

CVE-2019-19945漏洞复现 Openwrt针对uhttpd漏洞利用

根据官方漏洞的文档&#xff0c;该漏洞的复现工作我会基于openwrt的18.06.4这个版本进行测试。我选取的环境是渗透测试常用的kali-Linux系统&#xff0c;然后在其中搭建docker环境来完成相应的实验环境的部署。我通过这个核心命令获取docker环境&#xff1a; sudo docker impo…

GDPU 天码行空11

&#xff08;一&#xff09;实验目的 1、掌握JAVA中IO中各种类及其构造方法&#xff1b; 2、重点掌握IO中类所具有的IO操作方法&#xff1b; 3、熟悉软件中登录模块的开发方法&#xff1b; 4、掌握IO中读写常用方法。 5、进一步熟悉正则规则的使用方法。 &#xff08;二&…

Git可视化工具tortoisegit 的下载与使用

一、tortoisegit 介绍 TortoiseGit 是一个非常实用的版本控制工具&#xff0c;主要用于与 Git 版本控制系统配合使用。 它的主要特点包括&#xff1a; 图形化界面&#xff1a;提供了直观、方便的操作界面&#xff0c;让用户更易于理解和管理版本控制。与 Windows 资源管理器…

纯血鸿蒙APP实战开发——折叠屏扫描二维码方案

折叠屏扫描二维码方案 介绍 本示例介绍使用自定义界面扫码能力在折叠屏设备中实现折叠态切换适配。自定义界面扫码使用系统能力customScan&#xff0c;其提供相机流的初始化、启动扫码、识别、停止扫码、释放相机流资源等能力。折叠屏折叠状态通过监听display的foldStatusCha…

嵌入式C语言教程:实现声音监测系统

声音监测在许多应用中都十分重要&#xff0c;如噪声控制、安全系统、和智能家居控制。 本教程将介绍如何在STM32微控制器上使用模数转换器&#xff08;ADC&#xff09;和声音传感器实现实时声音监测系统。 一、开发环境准备 硬件要求 微控制器&#xff1a;STM32F746NG&…

ECHARTS学习

坐标轴 option {xAxis: {type: category,data: [A, B, C]},yAxis: {type: value},series: [{data: [120, 200, 150],type: line}] }; 1、坐标轴的默认类型type是数值型&#xff0c;而xAxis指定了类目型的data&#xff0c;所以Echarts也能识别出这是类目型的坐标轴&#xff0c;…

使用Matplotlib库绘制了一个图形

前言 本文学习的用Matplotlib绘制一个正弦函数曲线&#xff0c;大家跟我来 第一步&#xff1a;编辑代码 import numpy as np import matplotlib.pyplot as plt xnp.linspace(0,10,1000) #用NumPy中的linspace函数生成一个包含1000个在0到10之间均匀分布的数值的数组&#xf…

【自动化测试】使用MeterSphere进行接口测试

一、接口介绍二、接口测试的过程三、接口自动化测试执行自动化流程 四、接口之间的协议HTTP协议 五、 接口测试用例设计接口文档 六、使用MeterSphere创建接口测试创建接口定义设计接口测试用例 一、接口介绍 自动化测试按对象分为&#xff1a;单元测试、接口测试、UI测试等。…

LeetCode 每日一题 Day 144-157

2385. 感染二叉树需要的总时间 给你一棵二叉树的根节点 root &#xff0c;二叉树中节点的值 互不相同 。另给你一个整数 start 。在第 0 分钟&#xff0c;感染 将会从值为 start 的节点开始爆发。 每分钟&#xff0c;如果节点满足以下全部条件&#xff0c;就会被感染&#xf…

分类规则挖掘(三)

目录 四、贝叶斯分类方法&#xff08;一&#xff09;贝叶斯定理&#xff08;二&#xff09;朴素贝叶斯分类器&#xff08;三&#xff09;朴素贝叶斯分类方法的改进 五、其它分类方法 四、贝叶斯分类方法 贝叶斯 (Bayes) 分类方法是以贝叶斯定理为基础的一系列分类算法的总称。贝…

本地运行AI大模型简单示例

一、引言 大模型LLM英文全称是Large Language Model&#xff0c;是指包含超大规模参数&#xff08;通常在十亿个以上&#xff09;的神经网络模型。2022年11月底&#xff0c;人工智能对话聊天机器人ChatGPT一经推出&#xff0c;人们利用ChatGPT这样的大模型帮助解决很多事情&am…

解决问题:Docker证书到期(Error grabbing logs: rpc error: code = Unknown)导致无法查看日志

问题描述 Docker查看日志时portainer报错信息如下&#xff1a; Error grabbing logs: rpc error: code Unknown desc warning: incomplete log stream. some logs could not be retrieved for the following reasons: node klf9fdsjjt5tb0w4hxgr4s231 is not available报错…

KIE关键信息抽取——SDMG-R

https://arxiv.org/pdf/2103.14470https://arxiv.org/pdf/2103.14470 1.概述 背景:传统的关键信息提取方法依赖于模板匹配,这使它们难以泛化到未见过的模板,且对文本识别错误不够鲁棒。SDMG-R方法:提出一种端到端的双模态图推理方法,通过构建双模态图(视觉和文本特征),…

ROS服务器通信

目录 一、角色 二、流程 注意 三、例子描述 四、srv文件 编译配置文件 vscode配置 五、Server.cpp编写例子 编写CMakeList 六、观察server的效果 七、Client编写例子 编写CMakeList 八、观察Client的结果 九、Client优化&#xff08;动态输入&#xff09; 了解argc…

Go Web 开发 Demo【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言&#xff08;Gin&#xff09;开发Web程序&#xff0c;前端太弱了&#xff0c;得好好补补课&#xff0c;完了再来更新。 1、环境准备 新建项目&#xff0c;生成 go.mod 文件&#xff1a; 出现报错&#xff1a;go: modules disabled by G…

[论文阅读] 测试时间自适应TTA

最初接触 CVPR2024 TEA: Test-time Energy Adaptation [B站]&#xff08;1:35:00-1:53:00&#xff09;https://www.bilibili.com/video/BV1wx4y1v7Jb/?spm_id_from333.788&vd_source145b0308ef7fee4449f12e1adb7b9de2 实现&#xff1a; 读取预训练好的模型参数设计需要更…

Re69:读论文 LaMDA: Language Models for Dialog Applications

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;LaMDA: Language Models for Dialog Applications ArXiv网址&#xff1a;https://arxiv.org/abs/2201.08239 本文介绍谷歌提出的对话大模型LaMDA&#xff0c;主要关注对各项指标&#x…

一文带你了解 Oracle 23ai 新特性 Vector 的基础用法

Oracle Database 23ai 来了&#xff0c;虽然目前只是云上可商用&#xff0c;但是 OP 有 FREE 版本可以进行开发。 本文将介绍 Oracle 23ai 的新特性之一&#xff1a; AI 向量搜索&#xff0c;的部分内容。 向量数据类型 23ai 新增向量数据类型&#xff0c;可以用于表示一系列的…