C演算法程式設計題(四)上三角

2022-01-13 06:01:18 字數 1128 閱讀 5992

上幾篇說的都是根據要求輸出一些字元、圖案等,今天就再說乙個「上三角」,有點類似於第二篇說的正螺旋,輸出的字元少了,但是邏輯稍微複雜了點。

方陣的主對角線之上稱為「上三角」。

請你設計乙個用於填充n階方陣的上三角區域的程式。填充的規則是:使用1,2,3….的自然數列,從左上角開始,按照順時針方向螺旋填充。

例如:當n=3時,輸出:

1 2 3

6 45

當n=4時,輸出:

1  2 3 4

9 10 5

8  6

7當n=5時,輸出:

1  2  3  4  5

12 13 14  6

11 15  7

10  8

9程式執行時,要求使用者輸入整數n(3~20)

程式輸出:方陣的上三角部分。

要求格式:每個資料寬度為4,右對齊。

上三角和正螺旋的圖形很相似,不同的是上三角輸出的圖形是從對角線斜過來的。

接下來,我們看看能不能從上三角圖形中找些規律,有規律、把思路理清了,我們才能更容易用程式來實現所需功能。

首先我們會發現,輸出的上三角和我們輸入的行有關,如果輸入5行,那就15個數,也就是輸入n行,就輸出n*(n+1)/2個數;其次和正螺旋一樣都是依次遞增的,從上三角圖形我們可以看到,遞增分為三個方向;左->右、右上->左下、下->上。

先貼下**:

1

for(j=1;j<=n*(n+1)/2;low++,hi--)

2

a表示的是輸出的二維陣列,n表示輸入的行數,hi表示的是列的個數,初始化和n一樣,n*(n+1)/2表示的就是上三角的個數,low表示的圈數,這三個for迴圈的意思就是上面說的三個方向,語句很簡單主要是怎麼利用引數來表示輸出陣列的下標。

完整**:

1 #include "

stdio.h

"2 #include "

string.h

"3 #include "

stdlib.h"4

5int

main()624

for(i=0;i)

2530}31

return0;

32 }

view code

執行結果:

C演算法程式設計題(四)上三角

上幾篇說的都是根據要求輸出一些字元 圖案等,今天就再說乙個 上三角 有點類似於第二篇說的正螺旋,輸出的字元少了,但是邏輯稍微複雜了點。方陣的主對角線之上稱為 上三角 請你設計乙個用於填充n階方陣的上三角區域的程式。填充的規則是 使用1,2,3 的自然數列,從左上角開始,按照順時針方向螺旋填充。例如 ...

C演算法程式設計題(四)上三角

方陣的主對角線之上稱為 上三角 請你設計乙個用於填充n階方陣的上三角區域的程式。填充的規則是 使用1,2,3 的自然數列,從左上角開始,按照順時針方向螺旋填充。例如 當n 3時,輸出 1 2 3 6 45 當n 4時,輸出 1 2 3 4 9 10 5 8 6 7當n 5時,輸出 1 2 3 4 5...

C 程式設計 楊輝三角

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散...