将非负十进制整数n转换成b进制。(其中b=2~16)

完成实验报告包含以下内容:

一、题目分析

题目:将非负十进制整数n转换成b进制。(其中b=2~16)

分析:

以十进制数n转换为m进制,方法是将n除以m求余,并将每次余数记录下来,倒叙输出。本算法省去了记录部分,直接通过printf控制输出。

二、递归模型(以十进制数转换为三进制、十二进制为例)

三进制:

将非负十进制整数n转换成b进制。(其中b=2~16)

十二进制:

将非负十进制整数n转换成b进制。(其中b=2~16)

三、画出递归树或者递归栈的调用过程。

递归树:(以十进制数9转换为三进制数为例)

将非负十进制整数n转换成b进制。(其中b=2~16)

由上图经后序遍历即可得十进制数9转换为三进制的结果:100

 

四、调试、测试及运行结果

1、调试:(以十进制数13转换为四进制数为例)

将非负十进制整数n转换成b进制。(其中b=2~16)

将非负十进制整数n转换成b进制。(其中b=2~16)

将非负十进制整数n转换成b进制。(其中b=2~16)

将非负十进制整数n转换成b进制。(其中b=2~16)

将非负十进制整数n转换成b进制。(其中b=2~16)

将非负十进制整数n转换成b进制。(其中b=2~16)

将非负十进制整数n转换成b进制。(其中b=2~16)

2.测试:

数值输入验证:

将非负十进制整数n转换成b进制。(其中b=2~16)

进制转换选择验证:

将非负十进制整数n转换成b进制。(其中b=2~16)

五、经验归纳

所遇问题:

1、当进行到(11-16)进制转换时,若继续涉0,1两个出口,会出现以下情况:

将非负十进制整数n转换成b进制。(其中b=2~16)

即程序自动将10看做一位数,为此,应增加出口,当n=10,输出A,依次往上为B、C、D、E、F。

2、Switch语句无法达到其正确的作用

将非负十进制整数n转换成b进制。(其中b=2~16)

经检查,发现将getch()函数误写为了getchar();

将非负十进制整数n转换成b进制。(其中b=2~16)

经验总结:

经过本次作业练习,使我对递归算法的设计应用有了更深层次的理解,同时,也能够熟练地将递归程序转换为非递归程序。