关于如何用递归转10进制为2进制
https://fishc.com.cn/thread-199007-1-1.html
(出处: 鱼C论坛)
无法删除,可以编辑帖子将求助中改为以解决~ 青出于蓝 发表于 2021-7-14 22:35
无法删除,可以编辑帖子将求助中改为以解决~
感谢 def tenTobin(x, sum=''):
if x in (0,1):
print('1'+sum)
else:
tenTobin(x//2, str(x%2)+sum)
tenTobin(255) 笨鸟学飞 发表于 2021-7-14 22:53
很抱歉半夜才回复您,一直在思考却不得解,让我很苦恼,所以半夜上机。
结合您的思路,写出了如下代码,省去了第2个参数
def D (x):
y = ''
if x:
y = D(x//2) + str((x % 2)) + y
else:
return ''
return y
print(D(1))
但我发现,我,您,小甲鱼,都忽略了 0 的情况。
通过 套一个 if 语句应该可以解决
但我已经不想管了{:10_266:},谢谢您的思路!!!
终于能好好睡觉了!感谢{:10_254:} Aston7 发表于 2021-7-15 02:37
很抱歉半夜才回复您,一直在思考却不得解,让我很苦恼,所以半夜上机。
结合您的思路,写出了如下代码, ...
新电脑没装 python,
if x in (0,1)
这里是考虑了0的情况的 def change(n):
result='0'
if n==0:
return result
else:
result=change(n//2)
return result+str(n%2)
num=int(input('请输入一个十进制数字:'))
print(change(num))
笨鸟学飞 发表于 2021-7-24 08:54
新电脑没装 python,
if x in (0,1)
这里是考虑了0的情况的
是我说法有问题
可能 if x in (0,1) 的靠量设置的,但直接输入‘0’时会直接执行 print('1'+sum) 导致输出的是 0
如下:
javascript:;
不知道是否误解了您的意思,还请见谅 :) Aston7 发表于 2021-7-24 17:14
是我说法有问题
可能 if x in (0,1) 的靠量设置的,但直接输入‘0’时会直接执行 print('1'+sum) 导致 ...
啊啊啊啊,写错了
第2句是:‘可能 if x in (0,1) 是出于对 0 的考量设置的’
页:
[1]