程式設計(滿分15分)
方陣的主對角線之上稱為「上三角」。
請你設計乙個用於填充n階方陣的上三角區域的程式。填充的規則是:使用1,2,3….的自然數列,從左上角開始,按照順時針方向螺旋填充。
例如:當n=3時,輸出:
1 2 3
6 4當n=4時,輸出:
1 2 3 4
9 10 5
8 6當n=5時,輸出:
1 2 3 4 5
12 13 14 6
11 15 7
10 8
程式執行時,要求使用者輸入整數n(3~20)
程式輸出:方陣的上三角部分。
要求格式:每個資料寬度為4,右對齊。
要求考生把所有函式寫在乙個檔案中。除錯好後,存入與考生資料夾下對應題號的「解答.txt」中即可。相關的工程檔案不要拷入。
對於程式設計題目,要求選手給出的解答完全符合ansi c標準,不能使用c++特性;不能使用諸如繪圖、中斷呼叫等硬體相關或作業系統相關的api。
解決此題目可首先觀察該三角形實際是由其他一層一層小三角形構成,如圖:
那麼可以採用遞推的思路來做,先將最外層數字填滿,再填內層三角形,直到遞推結束。
第乙個三角形的起點座標是(0,0),第二個三角形起點座標是(1,1)
…依次類推,所以只需將第i個三角形按照【i-1,j-1】平移即可。
結束條件為最內成三角形矩陣維度是否小於3。
**:
#include
#include
using
namespace std;
int map[20]
[20];
int begin =1;
//初始為1
int hang;
//記錄矩陣維度
//顯示函式
intshow()
cout<<
"\n";}
}//遞推
intdigui
(int n,
int circule)
//斜著
for(
int i=
1;i)//豎著
for(
int i=n-
2;i>=
1;i--
)//判斷終止條件
if(n-
3>0)
else
show()
;}intmain()
第二屆藍橋杯第八題 上三角
第八題 程式設計 滿分15分 方陣的主對角線之上稱為 上三角 請你設計乙個用於填充n階方陣的上三角區域的程式。填充的規則是 使用1,2,3 的自然數列,從左上角開始,按照順時針方向螺旋填充。例如 當n 3時,輸出 1 2 3 6 4 5 當n 4時,輸出 1 2 3 4 9 10 5 8 6 7 當...
藍橋杯 三角螺旋陣 遞迴
方陣的主對角線之上稱為 上三角 請你設計乙個用於填充n階方陣的上三角區域的程式。填充的規則是 使用1,2,3 的自然數列,從左上角開始,按照順時針方向螺旋填充。例如 當n 3時,輸出 1 2 3 6 4 5當n 4時,輸出 1 2 3 4 9 10 5 8 6 7當n 5時,輸出 1 2 3 4 5...
第二屆藍橋杯 中獎計算
題目 中獎計算 某 活動的規則是 每位參與者在紙上寫下乙個8位數的號碼。最後通過搖獎的辦法隨機產生乙個8位數字。參與者寫下的數字中最多有多少個連續位與開獎號碼中的相同,則稱為中了幾個號。例如 小張寫的數字是 12345678,而開獎號碼是 42347856。則稱小張中了3個號,因為其中最長的相同連續...