用递归把十进制数转换成二进制数

#include <iostream>
using namespace std;
void d2b(int n)
{
 if(n==0)
 {
  cout<<"0";
 }
 else
 {
  d2b(n/2);
  cout<<n%2;
 }

}
int main()
{
  int a;                                                         
  cout<<"请输入一个数:";
  cin>>a;
  cout<<"转换成二进制数是:";
  d2b(a);
  cout<<endl;
  return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下递归十进制转换为二进制: ``` def decimal_to_binary(n): if n == 0: return '' else: return decimal_to_binary(n // 2) + str(n % 2) ``` 其中,`n` 是要转换的十进制。如果 `n` 等于 0,返回空字符串。否则,将 `n` 除以 2 并向下取整,然后将余转换为字符串并与递归调用的结果连接起来。 例如,将十进制 13 转换为二进制: ``` >>> decimal_to_binary(13) '1101' ``` 同样地,可以使用以下递归二进制转换为十进制: ``` def binary_to_decimal(n): if len(n) == 0: return 0 else: return 2 * binary_to_decimal(n[:-1]) + int(n[-1]) ``` 其中,`n` 是要转换的二进制。如果 `n` 的长度为 0,返回 0。否则,将 `n` 的前缀部分递归转换为十进制并乘以 2,然后将 `n` 的最后一位转换为整并加上这个结果。 例如,将二进制 1101 转换为十进制: ``` >>> binary_to_decimal('1101') 13 ``` ### 回答2: Python是一种常用的编程语言,它广泛应用于据科学、机器学习、Web开发等领域。Python具有简单易学、表达式简洁、开发效率高等优点,在编写算法时也有诸多便利。本文将介绍如何使用Python递归实现十进制二进制之间的转换。 1. 十进制二进制 首先我们考虑如何将十进制转换为二进制。将一个十进制转换为二进制方法是,将其不断除以2,并将余逆序排列,直到商为0。例如,将十进制9转换为二进制,可以按如下步骤进行: ① 将9除以2,得商4余1; ② 将4除以2,得商2余0; ③ 将2除以2,得商1余0; ④ 将1除以2,得商0余1。 这样,我们就得到了9的二进制表示为1001。在Python中,我们可以使用递归方法来实现该过程。 具体实现如下: def decimalToBinary(n): if n == 0: return '' else: return decimalToBinary(n//2) + str(n%2) 上述代码中,decimalToBinary是实现十进制转换为二进制的函,n是要转换的十进制。如果n等于0,返回一个空字符串,否则将n除以2,取余转化为字符,然后将商作为新的n继续递归,最终得到一个二进制字符串。 2. 二进制十进制 接下来我们考虑如何将二进制转换为十进制。将一个二进制转换为十进制方法是,将其逐位展开,乘以相应的系,累加得到十进制。例如,将二进制1011转换为十进制,可以按如下步骤进行: ① 将二进制逆序排列得到1101; ② 第0位乘以2^0=1,得到1; ③ 第1位乘以2^1=2,得到0; ④ 第2位乘以2^2=4,得到1; ⑤ 第3位乘以2^3=8,得到1; ⑥ 将以上结果累加得到十进制1+0*2+1*4+1*8=13。 在Python中,我们可以使用递归方法来实现该过程。 具体实现如下: def binaryToDecimal(n): if n == '': return 0 else: return 2*binaryToDecimal(n[:-1])+int(n[-1]) 上述代码中,binaryToDecimal是实现二进制转换为十进制的函,n是要转换的二进制。如果n等于空字符串,返回0,否则将n字符串逆序,取除最后一位以外的部分作为新的n递归,将最后一位转换为int类型并乘以2,再将结果与递归结果相加,最终得到一个十进制。 总结 本文介绍了如何使用Python递归实现十进制二进制之间的转换。递归是一种重要的编程技巧,可以简化代码、增加可读性和可维护性。通过本文的介绍,希望读者能够更深入地理解Python的递归原理,使用Python更高效地实现算法和据结构。 ### 回答3: 在Python中,可以使用递归算法实现十进制二进制之间的转换。递归算法就是把一个大问题逐步细化成为更小的子问题,并在每个子问题中调用自身来求解,直到能解决最小的子问题。具体的实现方法如下: 1. 实现十进制二进制递归 ```python def decimal_to_binary(decimal_num: int) -> str: """ 实现十进制二进制递归 """ if decimal_num == 0: # 程序终止条件 return "0" elif decimal_num == 1: # 程序终止条件 return "1" else: # 递归调用本函,求解小规模问题 return decimal_to_binary(decimal_num // 2) + str(decimal_num % 2) ``` 上述代码中,函名为`decimal_to_binary`,接收一个参`decimal_num`,表示要转换的十进制,返回一个字符串类型的二进制。在函体中,我们首先判断程序应该终止的条件——如果十进制为0或1,则其对应的二进制也分别为0或1。接着,我们调用自身来求解较小规模的问题,即取十进制的整部分,不断地把它除以2,直到商为0为止,拼接余即为所求的二进制。 2. 实现二进制十进制递归 ```python def binary_to_decimal(binary_num: str) -> int: """ 实现二进制十进制递归 """ if len(binary_num) == 1: # 程序终止条件 return int(binary_num) else: # 递归调用本函,求解小规模问题 return binary_to_decimal(binary_num[:-1]) * 2 + int(binary_num[-1]) ``` 对于二进制十进制,我们也可以采用递归算法。函名为`binary_to_decimal`,接收一个参`binary_num`,表示要转换的二进制,返回一个整类型的十进制。在函体中,我们首先判断程序应该终止的条件——如果二进制的长度为1,则其对应的十进制也为1。接着,我们调用自身来求解较小规模的问题,即取二进制的前n-1位,不断地把结果乘以2,然后加上最后一位即可。 递归算法可读性好、易于理解,但在计算机中的运行效率较低。因此,在实际应用中,可以使用循环或者位运算等方法实现二进制十进制的转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值