簡體   English   中英

迭代到遞歸格式

[英]Iterative to Recursive format

我發現很難以遞歸格式編寫下面提到的代碼(Int to Binary)。 請幫助我清除我的疑問,即我缺少什么來實現這種轉換。

這是代碼:

class Stack:
   
   def __init__(self):
     self.number = []

   def push(self, number):
     self.number.append(number)

   def pop(self):
     return self.number.pop()

   def is_empty(self):
     return self.number == [] 

   def int_to_binary(number):
     s = Stack()
     while number > 0:
        remainder = number % 2
        s.push(remainder)
        number = number // 2

     set =''
     while not s.is_empty():
        set += str(s.pop())
        print(set)
   print(int_to_binary(243))

查看問題的迭代解決方案以將其轉換為遞歸解決方案通常根本沒有幫助。 Insetad,您需要從一開始就遞歸地思考。 就像每個編程問題一樣,您應該從用文字描述解決方案開始。 但是現在我們需要用遞歸的方式而不是迭代的方式來描述它。

我們首先描述所有基本情況:

n = 0的二進制表示為'0'

n = 1的二進制表示為'1'

然后我們描述遞歸的情況:

數字n的二進制表示是n除以 2(沒有余數)后跟n mod 2 的二進制表示。

注意描述是如何自我引用的。 這就是使其遞歸的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM