openjudge 蛇形填充數組

來源:互聯網
上載者:User

蛇形填充數組
查看 提交 統計 提問
總時間限制: 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 <iostream>using namespace std;int main(){int a[10][10]={0};int n,nc=0;int f;cin>>n;int ipre,jpre;while(nc++<n*n){if(nc==1){ipre=0;jpre=0;a[ipre][jpre]=nc;continue;}if((ipre+jpre)%2==0)//'/上'{if(ipre==0&&jpre!=n-1){//djpre+=1;a[ipre][jpre]=nc;}else if(jpre==n-1){//sipre+=1;a[ipre][jpre]=nc;}else{ipre-=1;jpre+=1;a[ipre][jpre]=nc;}}/*1  2  6  73  5  8  134  9  12 1410 11 15 16*/else//'/下'{if(jpre==0&&ipre!=n-1){//sipre+=1;a[ipre][jpre]=nc;}else if(ipre==n-1){//djpre+=1;a[ipre][jpre]=nc;}else{ipre+=1;jpre-=1;a[ipre][jpre]=nc;}}}for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(j==0)cout<<a[i][j];elsecout<<" "<<a[i][j];}cout<<endl;}return 0;}


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.