Part01.利用递归的方法实现进制转换
#include <iostream>
using namespace std;
void to8(int num)
{
int jingzhi = 2;
if (num / jingzhi > 0)
{
to8(num / jingzhi);
//如果num此时>8那么我们将num/8再进行调用
cout << num % jingzhi;
//这行输出语句在递归调用的后面,
//根据栈先进后出的原则这句话会在最后输出
}
else
{
// 递归终止条件,此时也是mod8并输出
cout << num % jingzhi;
}
}
int main()
{
to8(5589);
return 0;
}
进制转换的原理就是将数字一直整除进制数,除到商为0,然后将余数逆序输出。
那么 利用递归来求解这个问题我们就需要:
1、函数调用自身
2、递归终止条件
对于这个问题来说,递归终止条件就是除到商为0的时候。然后又因为最后的余数我们需要逆序输出,所以说我们可以将输出语句写在递归的后面。那么根据栈先进后出的性质,我们就可以将先得到的余数最后输出,而最后得到的余数先输出,那么我们就实现了将余数逆序输出。
另外,我们只需要修改变量jingzhi,也就是后面整除以及mod的进制数,就可以实现不同进制的转换。
Part02. 递归实现分解质因数
还没写完明天再写,嘻嘻~