思路
实在不会这种,看大佬博客吧
Hexagon
AC Code
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <iostream>
#include <map>
#include <string>
#include <set>
typedef long long ll;
using namespace std;
const int maxn = 1e5 + 7;
pair<int,int>b[10] = {{4,2},{5,3},{6,4},{1,5},{2,6},{3,1}};
int a[10] = {3,4,5,6,1,2};
int main() {
int T;scanf("%d",&T);
while(T--) {
int n;scanf("%d",&n);
for(int i = n;i >= 2;i -= 2) {
for(int j = 0;j < 6;j++) {
if(i == 2 && j == 5) printf("3");//2的时候往里面走
else printf("%d",a[j]);
for(int k = 0;k < i - 2;k++) {
printf("%d",b[j].first);
if(j == 5 && k == i - 2 - 1) {
continue;
}
printf("%d",b[j].second);
}
}
if(i - 2 >= 1) printf("4");//下面有数才填
}
printf("\n");
}
return 0;
}