나는 고정 된 크기의 작은 사각형 타일로 만들어진 커다란 사각형을 가지고 있습니다.재귀 적으로 사각형의 면적을 찾으십시오
이 작은 정사각형 타일의 면적은 알려져 있습니다. 타일의
한
은 왼쪽 상단에 표시됩니다.지금,
각 사각형은 4 개의 부분 집합으로 나눌 수 있습니다. 각 사각형에는 사각형을 나타내는 키가 있습니다.
큰 사각형 안에 빈 사각형이 많이있을 수 있습니다. 이 경우 키는 존재하지 않으며 영역은 0으로 간주됩니다.
작은 타일은 내가 재귀 적으로 키 주어진 임의의 사각형의 영역을 찾으려 3.
의 키 길이를 갖는다.
이것은 내가 시도한 것입니다. 그러나 그것은 나에게 올바른 해결책을주지 못하고있다.
findAreaRecursive(self, key, maxDepth=3):
if len(Key) == maxDepth:
if self.keyExists(key):
return self.getAreaValue(key)
else:
return 0
else:
keyChild0 = key + '0'
keyChild1 = key + '1'
keyChild2 = key + '2'
keyChild3 = key + '3'
if self.keyExists(keyChild0):
areaChild0 = self.findAreaRecursive(keyChild0, maxDepth)
else:
areaChild0 = 0
if self.keyExists(keyChild1):
areaChild1 = self.findAreaRecursive(keyChild1, maxDepth)
else:
areaChild1 = 0
if self.keyExists(keyChild2):
areaChild2 = self.findAreaRecursive(keyChild2, maxDepth)
else:
areaChild2 = 0
if self.keyExists(keyChild3):
areaChild3 = self.findAreaRecursive(keyChild3, maxDepth)
else:
areaChild3 = 0
return areaChild0 + areaChild1 + areaChild2 + areaChild3
내가 뭘 잘못하고있어. 나는 재귀가 처음이다. 어떤 도움도 환영합니다.
무엇이 오류입니까? – sashas
@sasha 오류가 발생하지 않습니다. 문제는'return areaChild0 + areaChild1 + areaChild2 + areaChild3'입니다. 언젠가 다른 크기의 사각형 영역을 추가합니다. 로직에 이상이 있어야합니다. – Sounak
그것은 나에게 좋을 것 같습니다. 어쩌면 다른 사람이 문제를 발견 할 수 있습니다. – sashas