欢迎光临散文网 会员登陆 & 注册

C++某题

2022-10-09 18:23 作者:讽刺派数学家  | 我要投稿

#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))  //调用判断"X"函数 

ci++;     //如为"X",更新答案 

}


            }

        }

    }

    cout<<ci;

    return 0;


C++某题的评论 (共 条)

分享到微博请遵守国家法律