有效果的网站排名,百度一下你就知道移动首页,网站接入百度地图,视频网站是如何做的捋一下这道题的思路#xff0c;理解了题目的意思之后我们知道这道题一定会用递归。 那递归的出口很简单#xff0c;矩阵为1x1的时候就是题目所说的不能再细分下去的意思。 问题就在于递归体。 我对于递归体的理解是找到一个普适的规律#xff0c;这个规律适用于每一次的递归… 捋一下这道题的思路理解了题目的意思之后我们知道这道题一定会用递归。 那递归的出口很简单矩阵为1x1的时候就是题目所说的不能再细分下去的意思。 问题就在于递归体。 我对于递归体的理解是找到一个普适的规律这个规律适用于每一次的递归。同时对于递归调用的方式页需要找到每次的变化。 在做有些题目的时候他递归调用只有一次但是这道题很显然不是一次因为每一个矩阵都会被分成四份那每一个小矩阵的范围都是不一样的无法用一个式子来表示。 针对题目的输出案例我们来找到这一道题的规律。其实题目中也有说到每次是左上角的矩阵值变为0。那每一次矩阵都会被分为四份每一份的矩阵范围都不一样且范围都与这个矩阵的边长有关。大家可以看看下面这张图。每一个小矩阵的边长都是大矩阵的一半。 关于参数的数量我是有三个因为在处理矩阵的时候我们需要知道start,end,step可以这么理解。 n int(input())
l [[1 for _ in range(2**n)]for _ in range(2**n)]
ans 2**n
def fun(a,b,ans):if ans 1:returnfor i in range(a,a(ans//2)):for j in range(b,b(ans//2)):l[i][j]0fun(a (ans // 2), b, ans // 2)fun(a, b (ans // 2), ans // 2)fun(a (ans // 2), b (ans // 2), ans // 2)fun(0,0,ans)
for i in l:for j in i:print(j,end )print(\n,end)