UVA1605 联合国大楼 Building for UN题解
作者:互联网
0x01.题目描述
0x02.思路:
其实感觉这道题就是道大水题,看完题目就应该会很简单的想到可以想到1种方法:
第一层:
每一行为同样的国家(字母),每一列为不同的国家(字母)
第二层:
每一行为不同的国家(字母),每一列为不同的国家(字母)
还要注意的是数据范围n<=50,所以我们就要用大写和小写字母来描述。
PS:但是最开始也只想到这种方法,但是没有样例,我还以为要输出所有的状况(可能会有奇奇怪怪的),害我绞尽脑汁想了很久,然后翻了下紫书发现只用输出这种方法
关键函数:即输出字母
char function(int x) {
if (x < 26)
return 'A' + x;//先输出大写
return 'a' + x - 26;//大写不够了输出小写
}
0x03:代码:
#include <bits/stdc++.h>
using namespace std;
char O_O(int x) {
if (x < 26)
return 'A' + x;
return 'a' + x - 26;
}//取了不怎么好看的函数名
int main() {
int n;
while (cin >> n) {
cout << 2 << " " << n << " " << n << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cout << O_O(i - 1);
}
puts("");
}
cout << endl;
for (int j = 1; j <= n; j++) {
for (int i = 1; i <= n; i++) {
cout << O_O(i - 1);
}
puts("");
}
}
return 0;
}
0x04.End:
0x05.题外话:
总感觉紫书上面的题很多都没什么人做,题解也很少(可能也只是我不知道),但是上面的题还是很好的,希望大家多做一些吧(虽然UVA稳定性好差)
标签:Building,UVA1605,26,return,输出,int,题解,字母,每一 来源: https://www.cnblogs.com/didutaoqiangqiang/p/15414887.html