将非负十进制整数n转换成b进制。(其中b=2~16)
完成实验报告包含以下内容:
一、题目分析
题目:将非负十进制整数n转换成b进制。(其中b=2~16)
分析:
以十进制数n转换为m进制,方法是将n除以m求余,并将每次余数记录下来,倒叙输出。本算法省去了记录部分,直接通过printf控制输出。
二、递归模型(以十进制数转换为三进制、十二进制为例)
三进制:
十二进制:
三、画出递归树或者递归栈的调用过程。
递归树:(以十进制数9转换为三进制数为例)
由上图经后序遍历即可得十进制数9转换为三进制的结果:100
四、调试、测试及运行结果
1、调试:(以十进制数13转换为四进制数为例)
2.测试:
数值输入验证:
进制转换选择验证:
五、经验归纳
所遇问题:
1、当进行到(11-16)进制转换时,若继续涉0,1两个出口,会出现以下情况:
即程序自动将10看做一位数,为此,应增加出口,当n=10,输出A,依次往上为B、C、D、E、F。
2、Switch语句无法达到其正确的作用
经检查,发现将getch()函数误写为了getchar();
经验总结:
经过本次作业练习,使我对递归算法的设计应用有了更深层次的理解,同时,也能够熟练地将递归程序转换为非递归程序。