20分萌新求助
查看原帖
20分萌新求助
758034
mxy2022楼主2022/10/5 21:19

20分求助,边界判断了 qwq

#include <bits/stdc++.h>
using namespace std;
int n;
bool a[101][101];
int sum=0;
int main()
{
	cin>>n;
	memset(a,0,sizeof(a));
	for(int i=1;i<=n;i++)
	{
		char binput[101];
		cin>>binput; 
		for(int j=1;j<=n;j++)
		{
			a[i][j]=binput[j-1]-'0';
		}
	}
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=n-1;j++)
		{
			for(int k=1;k<=n/2+1;k++)
			{
				if(!(i-k>0&&i-k<=n&&i+k>0&&i+k<=n&&j-k>0&&j-k<=n&&j+k>0&&j+k<=n)) break;
				if(a[i-k][j-k]&&a[i-k][j+k]&&a[i+k][j+k]&&a[i+k][j-k])
				{
					sum++;
				}
				else break;
			}
		}
	}
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=n-1;j++)
		{
			for(int k=1;k<=n/2+1;k++)
			{
				if(!(i-k+1>0&&i-k<=n&&i+k>0&&i+k<=n&&j-k+1>0&&j-k<=n&&j+k>0&&j+k<=n)) break; 
				if(a[i-k+1][j-k+1]&&a[i-k+1][j+k]&&a[i+k][j+k]&&a[i+k][j-k+1])
				{
					sum++;
				}
				else break;
			}
		}
	}
	cout<<sum;
	return 0;
} 
2022/10/5 21:19
加载中...