题目大意:
解题思路:
定义两个函数——暴力模拟
源程序:
#include<cstdio>
#include<algorithm>
using namespace std;
int sum,n;
bool a[26][26],b[26][26],c[26][26];
void xz()//旋转
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[i][j]=a[n-j+1][i];//b数组只是个中转站
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
a[i][j]=b[i][j];
//最后b数组的值还是放回a数组中叠加统计
}
void dj()
{
sum=0;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{
c[i][j]=a[i][j]==1?1:c[i][j];
//叠加,如果当前格子填充了颜色的话
//那就叠加上去,否则不管
if (c[i][j]) sum++;//统计
}
printf("%d\n",sum);//输出
}
int main()
{
scanf("%d",&n);getchar();
//读入(getchar读入换行符)
char c[26][26];
for (int i=1;i<=n;i++,getchar())//每次读入换行符
for (int j=1;j<=n;j++)
c[i][j]=getchar();//读入
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
a[i][j]=c[i][j]-'0';//不想用字符做
dj();//先存入c数组中并统计输出
for (int k=1;k<=3;k++)
{
xz(); dj();//每次旋转,叠加再统计输出
}
return 0;
}