如何Go语言打印输出沙漏
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇文章给大家分享的是有关如何Go语言打印输出沙漏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。题解打印沙漏 (20 分) Go语言|G
千家信息网最后更新 2025年11月09日如何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安全错误
数据库的锁怎样保障安全
软件开发社会背景
珠海软件开发机构
sql数据库查询所有表
单位网络安全检查登记本
渭南软件开发费用是多少
软件开发部考核办法
西安新城区网络安全
开淘宝店软件开发
对于软件开发成本的结转
数据库导入的方法
数据库关系必须满足的条件
数据库安全技术三个方面
密云区技术软件开发服务供应
中小学生网络安全的ppt
网络安全行业到50岁
1.7.10服务器永恒
数据库仿真实验
科技互联网四大巨头
法治网络安全教育手抄报六年级
怎么给数据库设置版本
联动花椒直播共话网络安全问题
gdc服务器
vc 显示数据库
怎么将后台服务器和前端联系起来
怎样下载股票数据库
数据库操作与接口调用同一事物
网吧计算机网络安全员
软件开发工作室要多少钱
数据库管理技术发展五个阶段
网络正常但是无法打开指定服务器