n階方陣,數字從1 n 2,順時針增大

2022-05-18 01:31:07 字數 1733 閱讀 4050

執行結果如下圖:

解題思路:可以將這個問題分解成x個外圍正方形所圍成的圖形,外圍的正方形又可以分為4個步驟,向右依次增大、向下依次增大、向左依次增大、向上依次增大。基本思路就是如此,最關鍵的就是什麼時候是轉折的時候,比如向右增大到接下來的向下增大轉折條件是什麼,我沒細究所以給外圍加了圍牆(陣列初始化為0,在輸入n後在外圍全賦值為1)作為判定條件,詳細看**

以下給出**示例:

#include //自己寫的code

#define n 20

//解決的問題:數字從1開始順時針填入n行n列陣列

intarrary[n][n]=;

voidassist(int);

voiddeal(int&,int,int);

intmain()

for(i=1;i<=n;i++)

}

voidassist(intn)//外加圍牆

voiddeal(int&num,intcolumn,introw)

column=j-1;

//printf("column:%d\n",column);測試資料時候檢測

for(i=row+1;;i++)//下

row=i-1;

//printf("row:%d\n",row);

for(j=column-1;;j--)//左橫

column=j+1;

// printf("column:%d\n",column);

for(i=row-1;;i--)//上

row=i-1;

//printf("row:%d\n",row);

}

深度優先搜尋 從1到n數字的所有排列

把數字當做撲克牌按照一定順序依次放到盒子內。public class dfstest public static void main string args public void dfs int step sum system.out.println here sum return 此時站在第st...

從0 n 中文字內容 含有1的 數字的個數

本人所碰到的情況分以下三種 1 通常思路 for 字串 比對計數 2 位數計算 另外有其他的朋友取高低位在此不做贅述 拿別人鏈結不太好csdn這類帖子不少可以找一找 3取餘public class maintest public static void get int n 取得數字n 取餘判斷是否為...

自然數從1到n之間,有多少個數字含有1

問題明確而簡單.for迴圈肯定是不好的.用遞推方法 定義h n 從1到9999.9999 n 個 9 之間含有1的數字的個數.定義f n 為n位數中含有1的數字的個數.由定義可知 h n f 1 f 2 f 3 f n 則f 1 h 1 1 f 2 10 1 8 h 1 f 3 10 2 8 h 2...