欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

題解

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

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

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

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

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

輸入格式:

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

輸出格式:

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

輸入樣例:

19 *

結尾無空行

輸出樣例:

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

結尾無空行

思路

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

就是找規(guī)律,先計算出所需要的有多少。再減去然后得到剩余的數(shù)量。然后再按照規(guī)律打印這個沙漏,其實就是一個等差數(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 { // 先是計算出所需要多少的符號
		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語言小白入門刷題打印輸出沙漏的詳細內容,更多關于Go語言打印沙漏的資料請關注腳本之家其它相關文章!

相關文章

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

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

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

    golang如何設置Header Content-type

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

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

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

    go語言題解LeetCode506相對名次示例詳解

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

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

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

    Go語言學習之鏈表的使用詳解

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

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

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

    一文帶你了解Golang中類型轉換庫cast的使用

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

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

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

    Golang?單元測試和基準測試實例詳解

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

最新評論