C++某題
#include<bits/stdc++.h>
using namespace std;
int a[105][105];
int n,ci=0;
int pd(int i,int j,int k) //遍歷“X”形,判斷是否全為1,
{
if(k-j<0) return 0;?
int x1=i,y1=j,y2=k;
for(int u=1;u<=k-j;u++)
{
x1++;
y1++;
y2--;
if(a[x1][y1]==0) return 0; ?//邊界不是‘0’?
if(a[x1][y2]==0) return 0; //邊界不是‘0’
}
return 1;
}
int main()
{
? ? cin>>n;
? ? char t;?
? ? for(int i=1;i<=n;i++)
? ? {
? ? ? ? for(int j=1;j<=n;j++)
? ? ? ? {
? ? ? ? cin>>t;
? ? ? ? ? ? a[i][j]=t-'0';
? ? ? ? }
? ? }
? ? for(int i=1;i<=n;i++) ? ? ? ? //(遍歷每一行)?
? ? {
? ? ? ? for(int j=1;j<=n;j++) ? ? //(遍歷每一列)
? ? ? ? {
? ? ? ? ? ? if(a[i][j]==1) ? ? //若此格為‘1’?
? ? ? ? ? ? {
? ? ? ? ? ? for(int k=j+1;k<=n;k++) //遍歷與此‘1’同行的每一個‘1’)
? ? ? ? ? ? {
? ? ? ? ? ? if(a[i][k]==1) ? //若同行的格子為‘1’?
? ? ? ? ? ? if(pd(i,j,k)) ?//調(diào)用判斷"X"函數(shù)?
ci++; ? ? //如為"X",更新答案?
}
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? cout<<ci;
? ? return 0;
}?