连样例都没过........求大佬帮忙
查看原帖
连样例都没过........求大佬帮忙
1292414
LeonTexius楼主2024/7/22 18:38
#include <bits/stdc++.h>
using namespace std;
int hf[50][50],q;
int f;
int main()
{
	cin >> q;
	hf[1][q / 2 + 1] = 1;
	
	for(int i = 2;i <= q * q;i++)
	{
		for(int j = 1;j <= q - 1;j++)
		{
			if(f == 0)
			{
				break;
			}
			if(hf[1][j] == i - 1)
			{
				f = 1;
				hf[1][j + 1] = i - 1;
						
				for(int k = 1;k <= q;k++)
				{
					if(hf[q][k] == 0)
					{
						hf[q][k] = i;
						break;
					}
				}
				break;
				
							
										
			}
		}
		
		for(int j = 2;j <= q;j++)
		{
			if(f == 0)
		    {
				break;
			}
			if(hf[j][q] == i - 1)
			{
				hf[j - 1][q] = i;
				f = 1;
				hf[j - 1][q] = i - 1;
				
			}
		}
		if(f == 1 && hf[1][q] == i - 1)
		{
			hf[2][q] = i;
			
		}
		for(int j = 2;j <= q;j++)
		{
			if(f == 0)
			{
				break;
			}
			for(int k = 1;k <= q - 1;k++)
			{
				if(hf[j][k] == i - 1)
				{
					f = 0;
					if(hf[j - 1][k + 1] == 0)
					{
						hf[j - 1][k + 1] = i;
						
					}
					else
					{
						hf[j + 1][k] = i;
					}
				}
			}
		}
		
		
		f = 1;
		
	}
	for(int i = 1;i <= q;i++)
	{
		for(int j = 1;j <= q;j++)
		{
			printf("%d ",hf[i][j]);
		}
		printf("\n");
	}    
	return 0;
}

2024/7/22 18:38
加载中...