联合国大楼 Building for UN
题面翻译
给出有多少个国家 n n n ( n n n <= 50 50 50 ),需要给每个国家安排办公室。大楼的每一层有着相同的行列数,请你构造一种安排(输出层数,行数和列数),使得每两个国家之间都有一间挨着的办公室,且办公室总数不超过 1000000 1000000 1000000 ,用不同字母表示不同国家,输出每层楼的安排方法。
感谢@我不是小明 提供翻译
题目描述
代码
#include<bits/stdc++.h>
using namespace std;
int n,a[100][100],b[100][100];
char aa(int n)//数字转化成字符
{
if(1<=n&&n<=26)
{
return (char) 'A'+(n-1);
}
else
{
return (char) 'a'+(n-27);
}
}
int main()
{
while(scanf("%d",&n)==1)
{
cout<<"2 "<<n<<" "<<n<<endl;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
a[i][j]=i;
b[i][j]=j;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<aa(a[i][j]);
}
cout<<endl;
}
cout<<endl;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<aa(b[i][j]);
}
cout<<endl;
}
cout<<endl;
}
return 0;
}