总阅读量次
写在前面
解决此类问题的方法可能不止以下这两类方式(十进制转化为其它进制也是同样的道理,在此仅以转化为二进制为例),在此只对两类方式的一种解法加以解释,其余方式暂不再此次讨论范围内。
方式一:递归
递归算法优势在于对某些特定问题的求解上思路清晰,结构简单,书写方便,但缺点也十分明显,即时间效率非常差,但还是在此写出递归算法的具体实现源码,封装成函数仅供参考。
源代码
1 | //这里的函数由于结构问题没有对于 0 的判定能力,需要在主函数内加入判定语句 |
测试样例:
方式二:非递归
对问题的求解一般采用非递归即循环的方式解决,优势在于执行效率比递归算法高得多,但在一些问题的求解上上循环结构比较复杂,故还是不能完全取代递归算法,这里依然用函数封装仅供参考。
源代码
1 | string dec2Bin2(int value){ |
测试样例(与之前相同实例同时验证结果的正确性)