|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、十进制转化为2进制
def Dec2Bin(dec):
result = '' #不懂这个是什么用
if dec:
result = Dec2Bin(dec//2) #这是取2,如果是8(10),2进制不是1×2*3,所以应该是1000,那除2,不就是4而已,就算再循环也是4//2=2,2//2=1
return result + str(dec%2) #上面求出了4,加个字符转义什么余数什么用,是只有这一步是在递归吗
else:
return result
print(Dec2Bin(8))
2、列表如下
result = [] #这个是起列表作用?还是只是递归后,加个[]而已
def get_digits(n):
if n > 0:
result.insert(0, n%10) #为什么位置参数是0,那不是都是在前面插入么,明明求的是余数,余数不是都在后面吗
get_digits(n//10)
get_digits(12345)
print(result)
这个是等于把变量初始化,后面递归得到结果依次拿去拼接上
得到最后的result,因为最后一次递归并不会进入if条件,而进入else 如果你没初始化就会报错
result = Dec2Bin(dec//2) #这是取2,如果是8(10),2进制不是1×2*3
所以应该是1000,那除2,不就是4而已,就算再循环也是4//2=2,2//2=1 我看不懂你问题里的 8(10)。。。但是就是把 dec 的值地板除2,然后进入递归
return result + str(dec%2) #上面求出了4,加个字符转义什么余数什么用,是只有这一步是在递归吗 上一步在递归了,不是这一步,这一步是每次递归的结果相互拼接起来
|
|