魔改分形求解,站外
  • 板块学术版
  • 楼主czH_
  • 当前回复3
  • 已保存回复4
  • 发布时间2024/10/9 16:14
  • 上次更新2024/10/9 19:24:54
查看原帖
魔改分形求解,站外
1040677
czH_楼主2024/10/9 16:14

我们有一道分形的魔改题,怎么都没人对只有33分 以下是题目

分形图通常被定义为“一个几何形状,可以分成数个部分,且每一部分都是整体缩小后的形状”,即具有自相似性质。


魔法世界的科学家由此提出分形宇宙论,即认为宇宙本质上是一个粒子。构成宇宙的无数个粒子里面又会有其它小宇宙。
例如: 一个尺度的宇宙表示为:
X
两个尺度的宇宙表示为
X X
 X
X X
基于这种认知,魔法世界的科学家将分形图研究进入到一个更深的层次,他们可以根据现有的模板,而演化出由模板构成的分形图。
输入
第一行有一个整数N(3<=N<=5),表示模板为一个NN的方阵。接下来有一个NN字符方阵。第N+2行有一个整数M(M<=5),表示分形图的层次。
输出
输出由模板演化的M层的分形图。

样例输入 复制
5
* * *
 * *
* * *
 * *
* * *
2
样例输出 复制
* * *     * * *
 * *       * *
* * *     * * *
 * *       * *
* * *     * * *
     * * *
      * *
     * * *
      * *
     * * *
* * *     * * *
 * *       * *
* * *     * * *
 * *       * *
* * *     * * *

我的code

#include<bits/stdc++.h>
using namespace std;
int n,l,l1;
string s[100005],t[10005];
int main()
{
	cin>>l,getchar();
	l=abs(l);
	for(int i=1;i<=l;i++)getline(cin,s[i]);
	cin>>n;
	n=abs(n);
	for(int i=1;i<=l;i++)
	{
		int x=s[i].size(),y=s[i-1].size();
		if(x<y)
		{
			for(int j=1;j<=y-x;j++)
				s[i]+=' ';
		}
		if(x>y)
		{
			for(int j=1;j<=x-y;j++)
			{
				for(int k=1;k<=i-1;k++)
					s[k]+=' ';
				
			}
		}
		while(s[i].size()<l1)s[i]+=' ';
	}
	for(int i=2;i<=n;i++,l*=3)
	{
		for(int j=1;j<=l;j++)
		{
			t[j]=s[j];
			for(int k=1;k<=l;k++) 
			{
				s[j]+=" ";				
			}
			s[j]+=t[j];
			for(int k=1;k<=l;k++) 
			{
				s[l+j]+=" ";
			}
			s[l+j]+=t[j];
			for(int k=1;k<=l;k++) 
			{
	
				s[l+j]+=" ";
			}
			s[l*2+j]=s[j];
		}
	}
	for(int i=1;i<=l;i++)cout<<s[i]<<endl;
	return 0;
}

2024/10/9 16:14
加载中...