鱼C论坛

 找回密码
 立即注册
查看: 1844|回复: 9

[已解决]关于如何用递归转10进制为2进制

[复制链接]
 楼主| 发表于 2021-7-14 22:30:49 | 显示全部楼层
怎么把帖子删掉啊?我已经发过一个了

关于如何用递归转10进制为2进制
https://fishc.com.cn/thread-199007-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 22:35:03 | 显示全部楼层

回帖奖励 +10 鱼币

无法删除,可以编辑帖子将求助中改为以解决~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-14 22:36:00 From FishC Mobile | 显示全部楼层
青出于蓝 发表于 2021-7-14 22:35
无法删除,可以编辑帖子将求助中改为以解决~

感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 22:53:13 | 显示全部楼层    本楼为最佳答案   
  1. def tenTobin(x, sum=''):
  2.     if x in (0,1):
  3.         print('1'+sum)
  4.     else:
  5.         tenTobin(x//2, str(x%2)+sum)

  6. tenTobin(255)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-15 02:37:10 | 显示全部楼层

很抱歉半夜才回复您,一直在思考却不得解,让我很苦恼,所以半夜上机。
结合您的思路,写出了如下代码,省去了第2个参数
  1. def D (x):
  2.     y = ''
  3.     if x:
  4.         y = D(x//2) + str((x % 2)) + y
  5.     else:
  6.         return ''
  7.     return y
  8. print(D(1))
复制代码


但我发现,我,您,小甲鱼,都忽略了 0 的情况。
通过 套一个 if 语句应该可以解决
但我已经不想管了,谢谢您的思路!!!

终于能好好睡觉了!感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

新电脑没装 python,
if x in (0,1)
这里是考虑了0的情况的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-24 10:23:45 | 显示全部楼层
  1. def change(n):
  2.     result='0'
  3.     if n==0:
  4.         return result
  5.     else:
  6.         result=change(n//2)
  7.         return result+str(n%2)
  8. num=int(input('请输入一个十进制数字:'))
  9. print(change(num))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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:;

不知道是否误解了您的意思,还请见谅 :)
AI9%I[A_8RSF55TK87KY5W0.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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 的考量设置的’
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 18:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表