十进制N转B进制

一、题目分析
将非负十进制整数n转换成b进制。(其中b=2~16)
基本要求:
1.完成题目,采用递归思想编程解决问题,要求设计出递归模型(递归出口和递归体的函数式)。
2.程序设计风格良好,实现功能测试代码,确保程序的健壮性。
3.画出递归树或者递归栈的调用过程。
4.实现非递归方法。
二、算法构造
1、递归算法
由题意可知,定义一个有两个参数的递归函数change(before,after)。其中,before表示需要进行转换的数字,after表示即将转换的进制。得到下面的递归公式:
change(before,after) = { change(0,after) before=0
change(before/after,after) before>0
利用求余数的方法来对应a[]数组的大小来求得相应的进制数,
2、非递归算法
在这里插入图片描述
依旧是利用求余数的方式相应转换进制,直到判断before<jz输出结束。
三、算法实现

#include<iostream>
#include<string.h>
using namespace std;
char a[]="0123456789abcdef";
//递归
void change(int before,int jz)
{
	if(before=0)
	{
		return ;
	}
	else
	{
		change(before/jz,jz);
		cout<<a[before%jz];
	}
}
/*
//非递归
int Exchange(int before, int jz)
{
	int p=1, y=0;
	int remainder=0;
	while (1)
	{
		remainder=bef
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值