我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何Go语言打印输出沙漏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何Go语言打印输出沙漏

本篇文章给大家分享的是有关如何Go语言打印输出沙漏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

题解

打印沙漏 (20 分) Go语言|Golang

要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

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

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

19 *

结尾无空行

输出样例:

*****
 ***
  *
 ***
*****
2

结尾无空行

思路

基础的输出,如果觉得这题不友好的可以跳过,等回头再来做做,领悟一下。

就是找规律,先计算出所需要的有多少。再减去然后得到剩余的数量。然后再按照规律打印这个沙漏,其实就是一个等差数列了啦~

代码如下

package mainimport ("fmt")func  main() {var n intvar tag bytevar sum, nextSum int_, _ = fmt.Scanf("%d %c", &n, &tag)sum = 1nextSum = 1i := 1last := 0for true { // 先是计算出所需要多少的符号i += 2nextSum += i * 2if nextSum <= n {sum += i * 2} else {i -= 2last = n - sumbreak}}for j:=i; j>=1; j=j-2 {  // 先打印上半部分var space = (i - j) / 2for k:=0; k<i-space; k++ {if k < space {fmt.Printf(" ")  // 先打印空格} else {fmt.Printf("%c", tag)  //再打印*}}fmt.Println() // 最后记得要换行}for j:=3; j<=i; j=j+2 {var space = (i - j) / 2  //再打印下半部分for k:=0; k<i-space; k++ {if k < space{fmt.Printf(" ")  //再打印*} else {fmt.Printf("%c", tag)}}fmt.Println()}fmt.Println(last)}

以上就是如何Go语言打印输出沙漏,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何Go语言打印输出沙漏

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何Go语言打印输出沙漏

本篇文章给大家分享的是有关如何Go语言打印输出沙漏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。题解打印沙漏 (20 分) Go语言|Golang要求你写个程序把给定的符号打印
2023-06-25

mfc中如何输出打印信息

在MFC中,可以使用`TRACE`宏、`AfxMessageBox`函数和`OutputDebugString`函数来输出打印信息。使用`TRACE`宏:`TRACE`宏可以用于输出调试信息到调试输出窗口。要使用`TRACE`宏,首先需要
mfc中如何输出打印信息
2023-10-28

C语言怎么打印输出某一年的日历

本篇内容主要讲解“C语言怎么打印输出某一年的日历”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么打印输出某一年的日历”吧!输入一个年份(1970以后的),以 2*6 的格式打印当年的日历
2023-06-08

Go语言如何输出格式化的字符串

本文介绍了Go语言如何输出格式化的字符串。可以通过fmt.Printf函数使用格式化字符串指定输出格式,该字符串包含格式化字符和可选的格式化标志。文章提供了示例代码,展示了如何使用默认格式、指定格式化字符以及应用格式化标志。此外,文章还介绍了高级用法,例如使用Sprintf函数进行日志记录和创建复杂的文本处理脚本。
Go语言如何输出格式化的字符串
2024-04-02

go语言如何实现两个协程交替打印

这篇“go语言如何实现两个协程交替打印”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言如何实现两个协程交替打印”文章吧
2023-06-29

c语言如何反序输出

要反序输出一个数组或者字符串,可以使用以下方法:1. 对于数组,可以使用循环从最后一个元素开始遍历,依次输出每个元素。例如:```c#include int main() {int arr[] = {1, 2, 3, 4, 5};int s
2023-08-18

VB语言如何输出文字

小编给大家分享一下VB语言如何输出文字,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!目标案例 以上案例,我们需要打印“我们是五月的花海”。一、开发思路往返
2023-06-20

c语言如何输出ascii码

在C语言中,可以通过使用整数类型的变量来存储ASCII码值,并通过printf函数来输出。以下是一种常见的方法:#include int main() {char c; // 声明一个字符变量printf("请输入一个字符: ");sc
c语言如何输出ascii码
2023-10-28

Go语言如何输出一条消息,并退出当前脚本

本文详细介绍了Go语言输出消息和退出脚本的方法。输出消息可通过fmt.Println()、log.Println()或os.Stdout.WriteString()函数实现。退出脚本可使用os.Exit()函数,它立即退出并返回退出代码。panic()函数也能退出脚本,但会打印堆栈跟踪信息。
Go语言如何输出一条消息,并退出当前脚本
2024-04-02

Go语言中如何输出带有换行符的文本

Go语言是一种现代化、高效且简洁的编程语言,广泛应用于各种领域的软件开发中。在Go语言中,输出带有换行符的文本非常简单,可以通过使用fmt包提供的Println函数实现。下面我们将具体介绍如何在Go语言中输出带有换行符的文本,以及相关的代码
Go语言中如何输出带有换行符的文本
2024-03-15

c语言输出nan如何解决

在C语言中,当计算结果为NaN时,可以使用isnan()函数来判断是否为NaN,然后进行相应的处理。示例代码如下:#include #include int main() {double result
c语言输出nan如何解决
2024-04-08

c语言printf如何输出中文

在C语言中,要输出中文字符,需要使用宽字符函数wprintf()和宽字符字符串类型wchar_t。以下是一个示例代码:```c#include #include int main() {wchar_t chinese[] = L"中文";w
2023-10-11

C语言如何打印各种图案

这篇文章主要介绍C语言如何打印各种图案,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、线段图案#includeint main(){ int a = 0; while(~scanf("
2023-06-22

c语言如何实现声音输出

在C语言中,可以使用音频库来进行声音输出。以下是使用ALSA音频库来实现声音输出的示例代码:#include int main() {int err;snd_pcm_t *handle;snd_pcm_hw_params_t *param
2023-10-25

c语言如何输出整个数组

在 c 语言中,可通过以下方法输出整个数组:1. 使用 for 循环;2. 使用指针;3. 使用 range-based for 循环(c++11 及更高版本)。如何用 C 语言输出整个数组在 C 语言中,可以通过几种方法输出整个数组:
c语言如何输出整个数组
2024-05-22

c语言如何输出时间格式

C语言中,可以使用ctime函数将时间以字符串格式输出。ctime函数的原型如下:```cchar *ctime(const time_t *timep);```其中,timep是一个指向time_t类型的指针,表示要转换为字符串的时间。下
2023-08-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录