HELLO!这是我第一次写BLOG,请大家支持一下!
c++题目 分形矩阵
本题是一道难度不高的数学题
应能通过题目的提醒做对
分形矩阵可分为
b(n-1) b(n-1)
b(n-1)
b(n-1) b(n-1)
那么我们可以做一个 dfs(x,y,pos)。
x,y为位置而pos为阶
通过计算每阶的长与宽的大小,可知每个n阶的分形矩阵,都是n-1阶的乘以3。
有n阶就会有3^n-1 * 3^n-1的数组
设 p=b[pos-1]/3. 相当于分为上中下三份
那么我们可以把 dfs(x,y,pos) 分成
- dfs(x,y,pos-1) 自己这一位
- dfs(x-p,y-p,pos-1) 左上的一位
- dfs(x-p,y+p,pos-1) 右上的一位
- dfs(x+p,y-p,pos-1) 左下的一位
- dfs(x+p,y+p,pos-1) 右下的一位
但递归出口呢?
当 pos=1 时自己这一位就肯定是 X 了
(我用的是n-1会方便一些,实际上n也可以,思路都已经写好了)
下面