蛇形三角填數

2021-08-02 19:02:47 字數 1072 閱讀 1696

跟蛇形填數一樣,只是填數要求按照三角形填。注意每組資料之間用空行隔開

第一行有乙個n,表示n組測試資料

接下來每組資料報括乙個數字x,表示三角形的邊長,0< x <1000

輸出之後填好之後的圖

首先找出圖形的特點(對稱性等)與迴圈變數(行號,列號)之間的關係. 我們可以假設行用i表示,列用j表示.我們的目的就是找出i,j與圖形之間的對應關係.按圖形形狀的不同,複雜性不同.但是都可以看做是在尋找一種或多種」靜態關係」. 蛇形填數這種題目的思路就是找出題目中對圖形的限制條件(不能出界,按照一定規則填充等).我們用各種迴圈和if語句將這些」規則」變成程式語句.同樣,根據」規則」不同,複雜性也不同.但是都可以看做是在尋找一種或多種」動態關係」.明確了解題思想不同後,因此我們要尋找的就是」動態關係」.這裡的動態關係就是」蛇形」.通過觀察,我們可以看出規則:在規定的方陣n*n裡.在不越界及不走重複位置的前提下,填充元素遵循右下左上的規定.即向右走到頂後向下走到頂,再向左走到頂,向上走到頂. 現在我們就將規則變成程式語句.首先是怎麼樣判斷不越界.由於方陣是n*n的方陣,我們使用二維陣列最大元素是a[n-1][n-1].那判斷是否行越界是不是就用語句if(y <= n-1)就行了呢? 思路上是沒錯,不過具體實現時會遇到麻煩,因為當y <= n-1的時候是要不停地進行y++向右填充的.那麼到y = n-1的時候仍會向右走一格,y = n時才會停下來.顯然這不是正確的狀態.還要處理回退.因此這種判斷方法是不完善的.在這裡我們就要提到在很多時候都要用到的判斷方法」預判」.即提前一格判斷下一格是否越界,如果下一格越界就不再移動.這樣就能很好控制填充的走向.即y+1 < n.在很多情況下,都需要這種預判,不僅對程式的安全性是一種保障,而且避免了一定要走錯才能判斷出錯誤這種尷尬情形.只不過要稍微注意下由於是預判,後面的變數要記得+1.

C 蛇形填數

蛇形填數 問題描述 在n n方陳裡填入1,2,n n,要求填成蛇形。例如n 4時方陳為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入直接輸入方陳的維數,即n的值。n 100 輸出輸出結果是蛇形方陳。問題分析 我們定義乙個二維陣列,開始x 0,y n 1,即第一行...

NYoj 蛇形填數

描述 在n n方陳裡填入1,2,n n,要求填成蛇形。例如n 4時方陳為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入 直接輸入方陳的維數,即n的值。n 100 輸出輸出結果是蛇形方陳。樣例輸入 3 樣例輸出 7 8 1 6 9 2 5 4 3 include ...

acm 蛇形填數

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 在n n方陳裡填入1,2,n n,要求填成蛇形。例如n 4時方陳為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入直接輸入方陳的維數,即n的值。n 100 輸出輸出結果是蛇形方陳。樣例輸入 3...