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

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

二、算法设计:

1.使用递归方法:递归出口:当输入的十进制整数为0时,退出函数,当输入的十进制数不为0时,进行将十进制数转化为任意进制的数的操作

函数出口:当输入的十进制数为0时

函数体:change(num,n)=change(num/n,n)      

2.非递归方法:当输入的十进制数大于0时,进行求余运算,判断转化的进制是否大于9,若转换的进制大于9,则需进行运算,将数字转换为A~F,最后输出的时候需将数字转换为字符,并倒叙输出。

三、递归树

四、截图

①调试截图

②运行结果

五、总结

将十进制整数转化为任意进制的数,是通过两种方法来实现的,第一种为递归,使用该方法解决问题,首先需要找到递归的出口,然后需要将函数体写出来,这使编程逻辑性较强,并且会变得相对简单一点。非递归主要是将递归转化。

遇到的问题:该程序中需要注意的是,将十进制整数转化为大于10进制的数需要转化为ACSII,例如,十进制的11转化为16进制为B,在这个过程中不知道该怎么转化,因此,上网查了一下,可以利用公式(num%n-10)+'A',num%n是十进制整数对需转化的进制进行求余运算。在非递归程序的编写过程中遇到的问题是输出的结果为倒叙,改了好多遍,最后使用字符串的逆序输出,将正确的答案输出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值