藍橋杯 等腰三角形

2021-10-22 22:38:23 字數 1397 閱讀 9427

本題目要求你在控制台輸出乙個由數字組成的等腰三角形。

具體的步驟是:

先用1,2,3,…的自然數拼乙個足夠長的串

用這個串填充三角形的三條邊。從上方頂點開始,逆時針填充。 比如,當三角形高度是8時:

輸入

輸入存在多組資料,對於每組資料:

輸入一行包含乙個正整數n(3輸出

對於每組測試資料輸出用數字填充的等腰三角形。

為了便於測評,我們要求空格一律用"."代替。

樣例輸入510

樣例輸出

這題比較容易想到是一道通過求解一些數學規律來完成題目的要求。但其實當我看到這道題第乙個困惑的 點在於這些數字的儲存。

首先這個等腰三角形肯定是逐行列印出來的,每一行的乙個數字不難解決,但最後乙個數字呢?由於當出現多位數時,每一位是分開的,那麼也就是每行的最後乙個數字是很難找到規律的(反正我找不到 )。那麼該如何解決每一行最後乙個數字的儲存呢?

乙個可行的辦法是,由於每乙個等腰三角形中的數字的數量是很容易統計出來,因此我們可以先用乙個陣列或是字串將所有的數字儲存起來,然後從第二行開始分別從頭與尾遍歷,直到最後一行將剩餘字元全部輸出。

由於c++11中to_string的存在,因此我選擇字串儲存。

接下來就是求解等腰三角形的數學規律( i 表示行數,1≤i

≤n1 \leq i \leq n

1≤i≤n)

每一行一開始的點的數量:n−i

n-in−

i\每一行(第一行不存在,最後一行為數字)兩個數字中間的點的數量:

2 ∗(

n−1)

−1=2

∗n−3

2*(n-1)-1=2*n-3

2∗(n−1

)−1=

2∗n−

3**如下:

#include

using

namespace std;

intmain()

//l、r分別表示遍歷str的頭、尾

int l =

0, r = num -1;

for(

int i =

1;i <= n;i++

)else

}}

藍橋杯等腰三角形 python

本題目要求你在控制台輸出乙個由數字組成的等腰三角形。具體的步驟是 先用1,2,3,的自然數拼乙個足夠長的串 用這個串填充三角形的三條邊。從上方頂點開始,逆時針填充。比如,當三角形高度是8時 121 3841 5761 76891011121314151輸入,乙個正整數n 3為了便於測評,我們要求空格...

列印等腰三角形(1)

要列印的樣式 源 public class for7 內迴圈輸出 for int j 1 j 2 i 1 j system.out.println 解析 外迴圈不再多說,第乙個內迴圈是輸出前邊的空格,應該能看懂吧,好吧再說一下 當i 1 即第一行 時,j 1,j 5,說明 j 要迴圈四次,並輸出四個...

等腰三角形的列印

列印出乙個等腰三角形。思路很容易 雙重for迴圈處理。難點在於如何控制等腰,讓圖形像個金字塔,可以想象乙個矩形挖成等腰三角形 package com.math.forth 列印出乙個等腰三角形。思路很容易 雙重for迴圈處理。難點在於如何控制等腰,讓圖形像個金字塔 author wql public...