本題目要求你在控制台輸出乙個由數字組成的等腰三角形。具體的步驟是:
先用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...