百練noi21:二維陣列右上左下遍歷,24:蛇形填充陣列
阿新 • • 發佈:2018-12-24
21:二維陣列右上左下遍歷
- 總時間限制:
- 1000ms
- 記憶體限制:
- 65536kB
- 描述
-
給定一個row行col列的整數陣列array,要求從array[0][0]元素開始,按從左上到右下的對角線順序遍歷整個陣列。
- 輸入
- 輸入的第一行上有兩個整數,依次為row和col。
餘下有row行,每行包含col個整數,構成一個二維整數陣列。
(注:輸入的row和col保證0 < row < 100, 0 < col < 100) - 輸出
- 按遍歷順序輸出每個整數。每個整數佔一行。
- 樣例輸入
-
3 4 1 2 4 7 3 5 8 10 6 9 11 12
- 樣例輸出
-
1 2 3 4 5 6 7 8 9 10 11 12
- 檢視
- 提交
- 統計
- 提問
-
- 程式碼:
#include<iostream> using namespace std; int main(){ int n,m,i,j,a[100][100]; cin>>n>>m; for(i=0;i<n;i++) for(j=0;j<m;j++) cin>>a[i][j]; for(i=0;i<=n+m-2;i++){ for(j=i;j>=0;j--){ if(j<m&&i-j<n){ cout<<a[i-j][j]<<endl; } } } }
24:蛇形填充陣列
- 總時間限制:
- 1000ms
- 記憶體限制:
- 65536kB
- 描述
-
用數字1,2,3,4,...,n*n這n2個數蛇形填充規模為n*n的方陣。
蛇形填充方法為:
對於每一條左下-右上的斜線,從左上到右下依次編號1,2,...,2n-1;按編號從小到大的順序,將數字從小到大填入各條斜線,其中編號為奇數的從左下向右上填寫,編號為偶數的從右上到左下填寫。
比如n=4時,方陣填充為如下形式:
1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16
- 輸入
- 輸入一個不大於10的正整數n,表示方陣的行數。
- 輸出
- 輸出該方陣,相鄰兩個元素之間用單個空格間隔。
- 樣例輸入
-
4
- 樣例輸出
-
1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16
- 檢視
- 提交
- 統計
- 提問
-
- 程式碼:
#include<cstdio> int main(){ int n,i,j,t=1; int a[100][100]={0}; scanf("%d",&n); for(i=0;i<=2*n-2;i++){ for(j=i;j>=0;j--){ if(j<n&i-j<n){ if(i%2!=0) a[i-j][j]=t++; else a[j][i-j]=t++; } } } for(i=0;i<n;i++){ for(j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; }