2.设计一个递归算法,把任一个十进制正整数转换为 S进制(2S9)数输出 void Transform(long num,int S); //把十进制正整数转换为 S进制数输出的递归算法
时间: 2023-06-19 13:04:31 浏览: 110
设计算法把一个十进制整数转换为二至九进制之间的任意进制输出(C++描述)
以下是将十进制正整数转换为S进制数的递归算法:
```
void Transform(long num, int S){
if(num == 0){
return;
}
else{
Transform(num / S, S);
int remainder = num % S;
if(remainder < 10){
cout << remainder;
}
else{
cout << (char)('A' + remainder - 10);
}
}
}
```
在递归函数中,我们首先检查num是否为0。如果是,我们就停止递归并返回。否则,我们将num除以S并递归调用函数。然后,我们计算num除以S的余数,并将其打印出来。如果余数小于10,则直接输出余数。否则,我们将余数转换为相应的大写字母并输出。这样,我们就可以将任何十进制正整数转换为S进制数。
阅读全文