编写一个递归函数,输入一个正整数 n,输出它的二进制表示 python解 需要注释
时间: 2024-03-25 14:39:33 浏览: 35
好的,请看下面的 Python 代码:
```python
def decimal_to_binary(n: int) -> str:
"""
递归函数,将十进制数转换为二进制字符串
"""
# 当 n 为 0 或 1 时,直接返回对应的字符串
if n == 0:
return "0"
elif n == 1:
return "1"
else:
# 递归调用自身,将 n//2 作为参数传入
# 并将 n%2 的结果转换为字符串拼接在最后
return decimal_to_binary(n // 2) + str(n % 2)
# 测试代码
if __name__ == '__main__':
decimal_num = 10
binary_str = decimal_to_binary(decimal_num)
print(f"{decimal_num} 的二进制表示为:{binary_str}")
```
这个递归函数将一个正整数转换为二进制字符串。其原理是不断将该数除以 2,直到商为 0 或 1,然后将每次得到的余数拼接在一起,最终得到二进制表示。
相关问题
C语言实现一个递归函数,将非负整数n转换为二进制后输出
```
#include <stdio.h>
void decimalToBinary(int n) {
if (n > 1) {
decimalToBinary(n / 2);
}
printf("%d", n % 2);
}
int main() {
int n;
printf("请输入一个非负整数:");
scanf("%d", &n);
printf("%d的二进制表示为:", n);
decimalToBinary(n);
printf("\n");
return 0;
}
```
编写函数实现从键盘输入一个正整数,将其按照二进制进行输出
可以使用以下代码实现:
```
def decimal_to_binary(n):
if n > 1:
decimal_to_binary(n // 2)
print(n % 2, end='')
num = int(input("请输入一个正整数:"))
decimal_to_binary(num)
```
首先定义一个函数`decimal_to_binary`,它接受一个正整数`n`作为参数。如果`n`大于1,递归调用`decimal_to_binary`函数,将`n`除以2并向下取整。然后打印`n`除以2的余数,即二进制数的最后一位。最后在函数外部,从键盘输入一个正整数`num`,并调用`decimal_to_binary`函数将其转换为二进制数并输出。