亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Go語言小白入門刷題打印輸出沙漏

 更新時(shí)間:2021年11月09日 17:24:37   作者:小生凡一  
這篇文章主要介紹了Go語言刷題打印輸出沙漏的示例過程詳解,非常適合剛?cè)腴TGo語言的小白學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助

題解

【PTA團(tuán)體程序設(shè)計(jì)天梯賽】 L1-002 打印沙漏 (20 分) Go語言|Golang

本題要求你寫個(gè)程序把給定的符號(hào)打印成沙漏的形狀。例如給定17個(gè)“*”,要求按下列格式打印

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

所謂“沙漏形狀”,是指每行輸出奇數(shù)個(gè)符號(hào);各行符號(hào)中心對(duì)齊;相鄰兩行符號(hào)數(shù)差2;符號(hào)數(shù)先從大到小順序遞減到1,再從小到大順序遞增;首尾符號(hào)數(shù)相等。

給定任意N個(gè)符號(hào),不一定能正好組成一個(gè)沙漏。要求打印出的沙漏能用掉盡可能多的符號(hào)。

輸入格式:

輸入在一行給出1個(gè)正整數(shù)N(≤1000)和一個(gè)符號(hào),中間以空格分隔。

輸出格式:

首先打印出由給定符號(hào)組成的最大的沙漏形狀,最后在一行中輸出剩下沒用掉的符號(hào)數(shù)。

輸入樣例:

19 *

結(jié)尾無空行

輸出樣例:

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

結(jié)尾無空行

思路

基礎(chǔ)的輸出,如果覺得這題不友好的可以跳過,等回頭再來做做,領(lǐng)悟一下。

就是找規(guī)律,先計(jì)算出所需要的有多少。再減去然后得到剩余的數(shù)量。然后再按照規(guī)律打印這個(gè)沙漏,其實(shí)就是一個(gè)等差數(shù)列了啦~

代碼如下

package main
import (
	"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 { // 先是計(jì)算出所需要多少的符號(hào)
		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<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語言小白入門刷題打印輸出沙漏的詳細(xì)內(nèi)容,更多關(guān)于Go語言打印沙漏的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • go語言的sql包原理與用法分析

    go語言的sql包原理與用法分析

    這篇文章主要介紹了go語言的sql包原理與用法,較為詳細(xì)的分析了Go語言里sql包的結(jié)構(gòu)、相關(guān)函數(shù)與使用方法,需要的朋友可以參考下
    2016-07-07
  • golang如何設(shè)置Header Content-type

    golang如何設(shè)置Header Content-type

    這篇文章主要介紹了golang如何設(shè)置Header Content-type問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Go語言context?test源碼分析詳情

    Go語言context?test源碼分析詳情

    這篇文章主要介紹了Go語言context?test源碼分析詳情,關(guān)于context?test,測(cè)試對(duì)象是context包,測(cè)試包的包名是context_test,下面將對(duì)context?test源碼進(jìn)行分析,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2022-02-02
  • go語言題解LeetCode506相對(duì)名次示例詳解

    go語言題解LeetCode506相對(duì)名次示例詳解

    這篇文章主要為大家介紹了go語言題解LeetCode506相對(duì)名次示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Go語言實(shí)現(xiàn)超時(shí)的三種方法實(shí)例

    Go語言實(shí)現(xiàn)超時(shí)的三種方法實(shí)例

    超時(shí)在一些業(yè)務(wù)場(chǎng)景里非常普遍,下面這篇文章主要給大家介紹了關(guān)于Go語言實(shí)現(xiàn)超時(shí)的三種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Go語言具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Go語言學(xué)習(xí)之鏈表的使用詳解

    Go語言學(xué)習(xí)之鏈表的使用詳解

    鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。本文將詳細(xì)為大家介紹Go語言中鏈表的使用,感興趣的可以了解一下
    2022-04-04
  • 深入探索Go?1.21中的?maps工具庫

    深入探索Go?1.21中的?maps工具庫

    隨著?Go?1.21.0?版本的發(fā)布,新增了兩個(gè)實(shí)用的泛型工具庫:maps?和?slices,下面小編就帶大家一起學(xué)習(xí)一下?maps?工具庫的相關(guān)知識(shí)吧
    2023-08-08
  • 一文帶你了解Golang中類型轉(zhuǎn)換庫cast的使用

    一文帶你了解Golang中類型轉(zhuǎn)換庫cast的使用

    你是否在使用 Go 的過程中因?yàn)轭愋娃D(zhuǎn)換的繁瑣而苦惱過?你是否覺得 Go 語言中的類型斷言可能會(huì) panic 而對(duì)自己寫的代碼有那么一點(diǎn)點(diǎn)不放心?本文就為大家推薦一個(gè)用于類型轉(zhuǎn)換的第三方庫 cast 絕對(duì)是一個(gè)值得嘗試的選擇
    2023-02-02
  • go語言實(shí)現(xiàn)簡(jiǎn)單的并發(fā)網(wǎng)頁爬蟲示例

    go語言實(shí)現(xiàn)簡(jiǎn)單的并發(fā)網(wǎng)頁爬蟲示例

    在這個(gè)章節(jié)中,我們將會(huì)結(jié)合之前的知識(shí)點(diǎn),實(shí)現(xiàn)一個(gè)簡(jiǎn)易的并發(fā)網(wǎng)頁爬蟲,我們的爬蟲會(huì)先爬取一個(gè)起始頁面,提取出所有的鏈接,然后并發(fā)地爬取這些鏈接,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-08-08
  • Golang?單元測(cè)試和基準(zhǔn)測(cè)試實(shí)例詳解

    Golang?單元測(cè)試和基準(zhǔn)測(cè)試實(shí)例詳解

    這篇文章主要為大家介紹了Golang?單元測(cè)試和基準(zhǔn)測(cè)試實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評(píng)論