将十进制的正整数d转换为r进制整数(r=2~9),请编写递归函数Trans实现。 提示:以字符串方式返回结果。
时间: 2023-05-29 07:07:34 浏览: 280
def Trans(d, r):
if d == 0:
return ""
else:
return Trans(d // r, r) + str(d % r)
d = int(input("请输入一个十进制正整数:"))
r = int(input("请输入要转换的进制数(2~9):"))
print(Trans(d, r))
相关问题
编写一个Python程序,用递归函数将十进制正整数转化为r进制数,r为2~9
以下是一个可以实现将十进制正整数转化为r进制数的Python程序,其中使用了递归函数:
```python
def dec2r(num, r):
if num < r:
return str(num)
else:
return dec2r(num // r, r) + str(num % r)
num = int(input("请输入一个十进制正整数:"))
r = int(input("请输入想要转化的进制数(2~9):"))
if r < 2 or r > 9:
print("进制数必须在2~9之间")
else:
print("转化后的", r, "进制数为:", dec2r(num, r))
```
运行程序后,首先会提示用户输入一个十进制正整数和想要转化的进制数,如果输入的进制数不在2~9之间,则会提示用户重新输入。然后程序会使用递归函数将十进制正整数转化为r进制数,并输出转化后的结果。
例如,如果用户输入的十进制正整数为25,想要转化为8进制数,程序会输出如下结果:
```
请输入一个十进制正整数:25
请输入想要转化的进制数(2~9):8
转化后的 8 进制数为: 31
```
用C语言编写一个递归函数,实现将任意的十进制正整数转化为八进制数
以下是用C语言编写的递归函数,实现将任意的十进制正整数转化为八进制数:
```c
#include <stdio.h>
void decToOct(int num) {
if(num == 0) {
return;
} else {
decToOct(num / 8);
printf("%d", num % 8);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
printf("Octal equivalent: ");
decToOct(decimal);
return 0;
}
```
在这个程序中,我们定义了一个递归函数 `decToOct`,它接收一个十进制正整数 `num` 作为参数,并将其转换为八进制数。
递归函数的基本情况是当输入的数为 0 时,递归结束并返回。否则,函数会继续递归调用自身,传递 `num / 8` 作为参数,并输出 `num % 8` 的余数。这样,每次递归调用都会输出一位八进制数,直到最后一次递归结束。
在 `main` 函数中,我们首先提示用户输入一个十进制正整数,并读取输入。然后,我们调用 `decToOct` 函数,并输出转换后的八进制数。