题意:你的任务是设计一个包含若干层的联合国大楼,其中每层都是一个等大的网络 由若干个国家需要在联合国大楼里面办公 你需要把每个格子分配给一个国家 使得任意两个不同的国家都有一对相邻的格子 (要没是同层 要么是上下楼) 你设计的大厦不能超过一千个格子
思路: 一共只有两层 每层都是n*n的 第一层第i行全是国家i 第二层第j行全是国家j 效率非常之高
#include<cstdio> using namespace std; char country(int i) { if(i < 26) return ‘A‘ + i; return ‘a‘ + i - 26; } int main() { int n; while(scanf("%d", &n) == 1) { printf("2 %d %d\n", n, n); for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) printf("%c", country(i)); printf("\n"); } printf("\n"); for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) printf("%c", country(j)); printf("\n"); } } return 0; }
原文:https://www.cnblogs.com/bxd123/p/10429170.html