KY58 Repeater

发布时间:2024年01月16日

递归画图输出,也算是个模板吧
ti

#include<bits/stdc++.h>

using namespace std;

int n;
char mo[7][7];
char pic[3005][3005];

void draw(int q, int x, int y){
	if(q == 1){
		for(int i = 0; i < n; i ++ ){
			for(int j = 0; j < n; j ++ ){
				pic[x + i][y + j] = mo[i][j];
			}
		}
		return ;
	}
	else{
		int len = pow(n, q - 1);
		for(int i = 0; i < n; i ++ ){
			for(int j = 0; j < n; j ++ ){
				if(mo[i][j] != ' '){
					draw(q - 1, x + i * len, y + j * len);
				}
			}
		}
		return ;
	}
}

int main()
{
	while(cin>>n){
		
		if(n == 0) break;
		
		getchar();
		//memset(mo, ' ', sizeof(mo));
		for(int i = 0; i < 3005; i ++ ){
			for(int j = 0; j < 3005; j ++ ){
				pic[i][j] = ' ';
			}
		}
		
		for(int i = 0; i < n; i ++ ){
			for(int j = 0; j < n; j ++ ){
				mo[i][j] = getchar();
			}
			getchar();
		}
		
		int q;
		cin>>q;
		int size = pow(n, q);
		draw(q, 0, 0);
		for(int i = 0; i < size; i ++ ){
			for(int j = 0; j < size; j ++ ){
				cout<<pic[i][j];
			}
			cout<<endl;
		}
	}
	return 0;
}
文章来源:https://blog.csdn.net/qiaodxs/article/details/135620738
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。