打印矩阵

来源:互联网 发布:ubuntu挂载硬盘到home 编辑:程序博客网 时间:2024/05/17 08:59

.写一个凼数,打印一个如下的n x n的矩阵 
例如: 
     n = 5 
1 1 1 1 1 
1 2 3 2 1 
1 3 6 3 1 
1 2 3 2 1 
1 1 1 1 1 
 
     n = 6 
1 1 1 1 1 1 
1 2 3 3 2 1 
1 3 6 6 3 1 
1 3 6 6 3 1 
1 2 3 3 2 1 
1 1 1 1 1 1 
 
提示:  除了边上的元素,每个元素都是由边上的某两个元素相加得到的 
 

void AddMatrix(int n); 

#include<iostream>using namespace std;void AddMatrix(int n){int **a = new int *[n];for (int i = 0;i < n;i++){a[i]  = new int[n];}int row;if (n%2){row = n/2;}else{row = n/2-1;}for (int i = 0;i < n;i++){for (int j = 0;j < n;j++){if ((i == 0)||(i == n-1)||(j == 0)||(j == n-1)){a[i][j] = 1;}}}for (int i = 0;i < n;i++){for (int j = 0;j < n;j++){if ((i == 0)||(i == n-1)||(j == 0)||(j == n-1)){;}else{if (i <= row){if (j <= row){a[i][j] = a[i-1][j] + a[i][j-1];}else{a[i][j] = a[i][n-1-j];}}else{a[i][j] = a[n-1-i][j];}}}}for (int i = 0;i < n;i++){for (int j = 0;j < n;j++){cout<<a[i][j]<<" ";}cout<<endl;}for (int i = 0;i < n;i++){delete []a[i];}}void main(){AddMatrix(5);system("pause");}


原创粉丝点击