设为首页 加入收藏

TOP

C++环形矩阵填充实现
2015-11-21 01:00:15 来源: 作者: 【 】 浏览:2
Tags:环形 矩阵 填充 实现
#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        #include
       
         #include
         using namespace std; int main(void) { int n; while(cin >> n) { map
         
           > tbl; for(int i = 0; i < n; ++i) for(int j = 0; j < n; ++j) tbl[i][j] = 0; int cnt = 1; int cir = 0; while(true) { if(tbl[cir][cir] != 0) break; int siz = n - cir*2; for(int i = 0; i < siz - 1; ++i) tbl[i + cir][cir] = cnt++; for(int j = 0; j < siz - 1; ++j) tbl[cir + siz - 1][cir + j] = cnt++; for(int i = siz - 1; i > 0; --i) tbl[cir + i][cir + siz - 1] = cnt++; for(int j = siz - 1; j > 0; --j) tbl[cir][cir + j] = cnt++; if(tbl[cir][cir] == 0) tbl[cir][cir] = cnt++; ++cir; } for(int i = 0; i < n; ++i) { for(int j = 0; j < n; ++j) { cout << setw(4) << tbl[i][j]; } cout << endl; } } return 0; }
         
       
      
     
    
   
  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CF 520B Two Buttons 下一篇hdu 2842(矩阵快速幂+递推)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: