题解
2024-04-25 20:33:03
发布于:上海
4阅读
0回复
0点赞
#include <iostream>
using namespace std ;
int main(){
	int x=0 , y , n ;
	cin >> n ;
	y = n/2 ;
	int s[n][n] ;
	for(int i = 0 ; i < n ; i++){
		for(int j = 0 ; j < n ; j++){
			s[i][j] = 0 ;
		}
	}
	s[x][y] = 1 ;
	for(int i = 2 ; i <= n*n ; i++){
		if(x==0 && y!=n-1){
			x = n-1 ;
			y++ ;
		}
		else if(x!=0 && y==n-1){
			x-- ;
			y = 0 ;
		}
		else if(x==0 && y==n-1){
			x++ ;
		}
		else if(x!=0 && y!=n-1 && s[x-1][y+1]==0){
			x-- ;
			y++ ;
		}
		else{
			x++ ;
		}
		s[x][y] = i ;
	}
	for(int i = 0 ; i < n ; i++){
		for(int j = 0 ; j < n ; j++){
			cout << s[i][j] << ' ' ;
		}
		cout << endl ;
	}
}
这里空空如也

有帮助,赞一个