大佬10分求帮助!!!(本人是蒟蒻)
查看原帖
大佬10分求帮助!!!(本人是蒟蒻)
959637
Michael_hyf楼主2023/4/5 22:35

#include <cstdio>
#include <string.h>
using namespace std;
template <typename T>
void in(T &x){
	char c=getchar(); int f=1;
	while ((c>'9' || c<'0') && c!='-') c=getchar();
	if (c=='-') f=-1, c=getchar();
	for (x=0; c>='0' && c<='9'; c=getchar())
		x=x*10+c-'0';
	x*=f;
}
int a[45][45];
int main(){
	memset(a,0,sizeof(a)); 
	int n,num,x=1,i,j;
	in(n);
	num=n*n;
	i=0,j=n/2;
	for(int i=0;i<=n;++i){
		a[i][n]=1;
		a[n][i]=1;
	}
	while(x<=num){
		if(i<0)i=n-1;
		if(i>n-1)i=0;
		if(j<0)j=n-1;
		if(j>n-1)j=0;
		if(a[i][j]>0){
			i+=2,--j;
		}else{
			a[i][j]=x;
//			printf("%d %d %d\n",i,j,x);
			++x,--i,++j;
		}
	}
	for(i=0;i<n;++i){
		for(j=0;j<n;++j)
			printf("%d ",a[i][j]);
		printf("\n");
	}
	return 0;
}

2023/4/5 22:35
加载中...