Aston7 发表于 2021-7-14 22:30:49

怎么把帖子删掉啊?我已经发过一个了

关于如何用递归转10进制为2进制
https://fishc.com.cn/thread-199007-1-1.html
(出处: 鱼C论坛)

青出于蓝 发表于 2021-7-14 22:35:03

无法删除,可以编辑帖子将求助中改为以解决~

Aston7 发表于 2021-7-14 22:36:00

青出于蓝 发表于 2021-7-14 22:35
无法删除,可以编辑帖子将求助中改为以解决~

感谢

笨鸟学飞 发表于 2021-7-14 22:53:13

def tenTobin(x, sum=''):
    if x in (0,1):
      print('1'+sum)
    else:
      tenTobin(x//2, str(x%2)+sum)

tenTobin(255)

Aston7 发表于 2021-7-15 02:37:10

笨鸟学飞 发表于 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:}

笨鸟学飞 发表于 2021-7-24 08:54:58

Aston7 发表于 2021-7-15 02:37
很抱歉半夜才回复您,一直在思考却不得解,让我很苦恼,所以半夜上机。
结合您的思路,写出了如下代码, ...

新电脑没装 python,
if x in (0,1)
这里是考虑了0的情况的

小月yyds 发表于 2021-7-24 10:23:45

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))

Aston7 发表于 2021-7-24 17:14:10

笨鸟学飞 发表于 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:16:59

Aston7 发表于 2021-7-24 17:14
是我说法有问题

可能 if x in (0,1) 的靠量设置的,但直接输入‘0’时会直接执行 print('1'+sum) 导致 ...

啊啊啊啊,写错了

第2句是:‘可能 if x in (0,1) 是出于对 0 的考量设置的’
页: [1]
查看完整版本: 关于如何用递归转10进制为2进制