能给F、G、I、K、M的题解码? 球球了(●'◡'●)
等
你竟然在这
#include<bits/stdc++.h>
using namespace std;
int main() {
while(1){
cout<<"盗我代码是吧"<<" " ;
}
@周子隽 我在这里发言没事吧?
快了
K
#include<iostream>
using namespace std;
const int N=1e3;
int B[N][N];
void dfs(int n){
if(n==1) {//第n级盒子只有一个'X';
B[0][0]=1;
return;
}
dfs(n-1);
int len_n_1=1;//表示n-1级盒子边长;
for(int i=1;i<=n-2;++i)
len_n_1*=3;
int dx[4]={0,1,2,2,},dy[5]={2,1,0,2};//表示行和列的变化,单位为len_n_1;
for(int i=0;i<4;++i)
for(int j=0;j<len_n_1;++j)
for(int k=0;k<len_n_1;++k)
B[dx[i]*len_n_1+j][dy[i]*len_n_1+k]=B[j][k];//将变化前的值复制给变化后的值;
return;
}
int main()
{
dfs(7);
int n;
while(cin>>n&&n!=-1){
int len_n=1;//len_n表示n级盒子边长;
for(int i=1;i<=n-1;++i)
len_n*=3;//边长=3^(n-1);
for(int i=0;i<len_n;++i){//根据输入的数值大小,输出对应边长大小的数组;
for(int j=0;j<len_n;++j)
if(B[i][j]==1) cout<<'X';//某一位值为1表示该输出'X',否则输出空格;
else cout<<' ';
cout<<endl;
}
cout<<'-'<<endl;
}
}
比赛已结束。