C++12. 魔方陣

Unlimited q發表於2020-12-05
  1. 魔方陣
    【問題描述】輸入一個自然數N(1<=N<=9),要求輸出如下的魔方陣,即邊長為2*N-1,N在中心出現一次,其餘位置上的數字從外向中心逐漸增大。
    N=3時:
    11111
    12221
    12321
    12221
    11111
    N=4時:
    1111111
    1222221
    1233321
    1234321
    1233321
    1222221
    1111111
    【輸入形式】從標準輸入讀取一個整數N。
    【輸出形式】向標準輸出列印結果。輸出符合要求的方陣,每個數字佔一個字元寬度,在每一行末均輸出一個回車符。
    【輸入樣例】3
    【輸出樣例】
    11111
    12221
    12321
    12221
    11111
    【樣例說明】輸入自然數3,則輸出邊長為5的方陣,3在方陣的中間出現一次,其餘位置上的數字從外向中心逐漸增大。
#include<iostream>
using namespace std;
int a[20][20];
int main(){
	int n,min;cin>>n;
	for(int i=1;i<=2*n-1;i++){
		for(int j=1;j<=2*n-1;j++){
		if(abs(i-n)>abs(j-n))a[i][j]=n-abs(i-n);
		else a[i][j]=n-abs(j-n);
		
		}
	}
	for(int i=1;i<=2*n-1;i++){
		for(int j=1;j<=2*n-1;j++)
		cout<<a[i][j];
		cout<<endl;
	} 
}

相關文章