python递归与非递归实现十进制转二进制 |
您所在的位置:网站首页 › rog3070重量 › python递归与非递归实现十进制转二进制 |
递归与⾮递归实现⼗进制转⼆进制 binary representation ⼆进制表⽰ 重复把 n 除以 2 ,然后反向读取所有的余数(即:辗转相除法) while循环实现:编写⼀个 while 循环完成除以 2 的任务,并顺序输出各⼆进制 def decimal_to_binary_while_loop(n): s = '' while n > 0: s = str(n%2) + s # 取余后更新 s n = n//2 # 取整后更新 n return s 递归实现 def decimal_to_binary_recursion(n, result = ''): if n == 0: return result # 基例 return decimal_to_binary_recursion(n//2, str(n%2) + result) # 递归链条 '''
递归过程⽰例 eg: decimal_to_binary_recursion(8, '') --> n == 8 --> decimal_to_binary_recursion(4, '0') # 8//2, str(8%2) + '' --> n == 4 --> decimal_to_binary_recursion(2, '00') # 4//2, str(4%2) + '0' --> n == 2 --> decimal_to_binary_recursion(1, '000') # 8//2, str(2%2) + '00' --> n == 1 --> decimal_to_binary_recursion(0, '1000') # 1//2, str(1%2) + '000' --> n == 0 --> return '1000' # result == '1000' --> return '1000' # decimal_to_binary_recursion(1, '000') --> return '1000' # decimal_to_binary_recursion(2, '00') --> return '1000' # decimal_to_binary_recursion(4, '0') --> return '1000' # decimal_to_binary_recursion(8, '') ''' 代码测试 print(decimal_to_binary_recursion(166)) # >>> 10100110 print(decimal_to_binary_while_loop(167)) # >>> 10100111 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |