如何Go语言打印输出沙漏
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关如何Go语言打印输出沙漏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。题解打印沙漏 (20 分) Go语言|G
千家信息网最后更新 2026年11月02日如何Go语言打印输出沙漏
本篇文章给大家分享的是有关如何Go语言打印输出沙漏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
题解
打印沙漏 (20 分) Go语言|Golang
要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个"*",要求按下列格式打印
*****
***
*
***
*****
所谓"沙漏形状",是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:
输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。
输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:
19 *
结尾无空行
输出样例:
*****
***
*
***
*****
2
结尾无空行
思路
基础的输出,如果觉得这题不友好的可以跳过,等回头再来做做,领悟一下。
就是找规律,先计算出所需要的有多少。再减去然后得到剩余的数量。然后再按照规律打印这个沙漏,其实就是一个等差数列了啦~
代码如下
package mainimport ( "fmt")func main() { var n int var tag byte var sum, nextSum int _, _ = fmt.Scanf("%d %c", &n, &tag) sum = 1 nextSum = 1 i := 1 last := 0 for true { // 先是计算出所需要多少的符号 i += 2 nextSum += i * 2 if nextSum <= n { sum += i * 2 } else { i -= 2 last = n - sum break } } for j:=i; j>=1; j=j-2 { // 先打印上半部分 var space = (i - j) / 2 for k:=0; k以上就是如何Go语言打印输出沙漏,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
沙漏
符号
输出
号数
语言
就是
形状
格式
输入
一行
更多
知识
空格
空行
篇文章
规律
部分
顺序
实用
最大
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
百单网互联网科技有限公司
北京路客互联网科技有限公司
广州百单互联网科技有限公司
互联网科技财经
鸠鸠互联网科技
科技互联网技术
云电互联网科技
互联网前沿科技
互联网科技汛
互联网实体化科技化
互联网科技有哪些公司
互联网金融科技展
爱医互联网络科技
互联网科技公司营业执照怎么办理
合肥互联网科技公司公章图片
易企秀互联网科技是做什么的
北京互联网科技类企业分布
互联网金融金融科技
伍佰万互联网科技是干嘛的
互联网科技园
互联网科技垄断
科技企业和互联网企业
互联网与科技金融数据
以房互联网科技
嘟嘟瓜互联网科技
顺玮阁互联网科技
阿里巴巴算科技企业还是互联网
互联网公司高科技产品
互联网企业科技类企业如何做账