1樓:袁世平
感覺我的程式太low了...
不知道這題到底正解是不是搜尋,我感覺不是...
反正我的搜尋加了乙個小剪枝仍然最多在2s跑完(4,5) 這個樣例.
問題是,我感覺不太會加剪枝了!...
所以(5,5)這個點一直沒有跑過去.
#include
#include
#include
using namespace std;
const int maxn=6;
int n,m,nm,idex;
int a[maxn][maxn];
bool used[maxn*maxn];
void dfs(int x,int y)//min表示這個位置上能填的最小值,max表示能填的最大值int min=max(a[x-1][y],a[x][y-1])+1;
min=max(min,x*y);
//min必須比這一列的前乙個大,必須比這一行的前乙個大//min必須比x*y大,因為它是x*y的矩陣中最大的乙個int max=nm-(n-x+1)*(m-y+1)+1;
//max必須小於nm-(n-x+1)*(m-y+1)+1,因為它是右下角這個矩形裡最小的乙個
for(int i=min;i<=max;i++)}}int main()不過我還是把**發上來吧,也期待別人的回答
用c語言如何程式設計列印出由1到n^2的自然數構成的魔方陣,?
2樓:
奇數魔方陣就是將數字排列在nxn(n為奇數)的方陣上,要求滿足各行、各列與各對角線的和相同。如下圖所示,是n=5的奇數魔方陣。
填魔方陣的方法以奇數魔方陣最為簡單,第乙個數字放在第一行的正**(填了1),然後向右(左)上填,如果右(左)上已有數字,則向下填,如下圖所示:
一般程式語言的陣列多由0開始,為了計算方便,我們利用索引1到n的部份,而在計算是向右(左)上或向下時,我們可以將索引值除以n值,如果得到餘數為1就向下,否則就往右(左)上。
4n 魔方陣
與奇數魔術方陣相同,在於求各行、各列與各對角線的和相等,不同的是這次方陣的維度是4的倍數。
先來看看4x4方陣的解法:
簡單的說,就是乙個從左上由1依序開始填,但遇對角線不填,另乙個由左上由16開始填,但只填在對角線,再將兩個合起來就是解答了。如果n大於等於2,則以 4x4為單位畫對角線,如下所示:
至於對角線的位置該如何判斷,有兩個公式,有興趣的可以畫圖印證,如下:
左上至右下:j % 4 == i % 4
右上至左下:(j % 4 + i % 4) == 1
8階魔方陣(n=2)的結果如下:
列印乙個n*n的數字方陣,c++或c語言 25
3樓:匿名使用者
4* 4的期望值是什麼呢?橫向和縱向是什麼規律?
c++程式設計有乙個n×m的矩陣,把1,2,3…………n×m個自然數填入矩陣中,每個格仔填乙個數,
4樓:匿名使用者
int a[m][n],b[m][n];
分別2個陣列賦值
int i,j;
for(i = 0; i < m; i++)for(j = 0; j < n; j++)a[i][j] += b[i][j];
最後輸出a陣列元素就是結果了
c++程式設計有乙個n×m的矩陣,把1,2,3…………n×m個自然數填入矩陣中,每個格仔填乙個數,
5樓:匿名使用者
n能到6,是狀壓動規:
#include
using namespace std;
int n,m,f[8000];
int get(int *a)
for(int i=1;i>n>>m;
m++;
f[0]=1;
int t=1;
for(int i=1;i<=n;++i)t*=m;
cout< return 0;} 用c語言程式設計列印出由1到n^2的自然數構成的魔方陣,n由鍵盤輸入。魔方陣的每一行每一列和對角線均相等。 6樓: .初始化 建立n*n方陣(n為奇數), 並以0填充 以整數h表示方陣列, v表示方陣行 h = n-1 v = n/2 .初始化完畢 .定義當前: 當前方陣行列位置(v, h) 下一: 下一方陣行列位置(v+1, h+1) .定義完畢 .開始1. 判斷: 數是否填完 是: 結束 否: 當前: 填數 2. 判斷: 下一 是否越界 是: 下一: 越界座標置0 否: 繼續 3. 判斷: 下一 是否為0 是: 當前 = 下一, 轉1 否: 當前: h減1, v不變, 轉1 .結束#include #include /*----------------------------------------*/ struct stpos cur, next; /*--定義方陣行列表示方法:h表示列,v表示行--*/ int main() while (!(isize % 2)); /*--------------------------------*/ if ((pinumber = (int *)malloc(isize * isize * sizeof(int))) == null) cur.h = isize - 1; cur.v = isize / 2; j = isize * isize; for (i = 0; i < j; i++) *(pinumber + i) = 0; /*--------------初始化------------*/ for (i = 1; i <= j; ++i) /*-------------處理模組-----------*/ for (i = 0; i < j; ++i) /*-------------列印結果-----------*/ free(pinumber); return 0;} 7樓: #include int main() for (i=1;i<=n;i++) for (j=1;j<=n;j++) a[i][j]=0; j=n/2+1; a[1][j]=1; for (k=2;k<=n*n;k++) else if (a[i][j]==0) a[i][j]=k; else }for (i=1;i<=n;i++) return 0;} 8樓:匿名使用者 #include"stdio.h" main() for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=0; j=n/2+1; a[1][j]=1; for(k=2;k<=n*n;k++) else if(a[i][j]==0)a[i][j]=k; else }for(i=1;i<=n;i++)} c++程式:蛇形矩陣:生成乙個按蛇形方式排列自然數1,2,3,4,5,……,n^2的 n(1 < n <= 15)階方陣. 9樓:何渡忘川 #include void main() //輸出下三角 for(i=n+1;i<2*n;i++) for(j=1;j<=2*n-i;j++)printf("output\n"); for(i=1;i<=n;i++) printf("\n");} 謝應宸 1 include include include int f int x return sum void main 2 include include include void main printf 加密後為 s n buf 滄海雄風 第一題 123sum 6 press any key... 秋狸 2的各個次方末位的規律如下 1 1 2,末位是2 2 2 4,末位是4 2 3 8,末位是8 2 4 16,末位是6 2 5 32,末位是2 2 6 64,末位是4 2 7 128,末位是8 2 8 256,末位是6 綜上所述,2的各個次方的個位上的數字是2 4 8 6,四個數的迴圈,又因為2... include include void main int i,n,sum 0 printf please input n scanf d n for i 0 i n i sum pow 2,i printf sum d n sum include include void main int i 0...程式設計要求輸入五位數,輸出它的各個數字上數字之和
2的2019次方的個位數字是多少
程式設計實現求2的零次方加2的一次方一直加到2的十次方的值