用c++编写递归将十进制转换为十六进制
展开全部
这个和十进制转成二进制很像
假设这个十进制数为n
就是不断取模,除以十六。。。一直到n==0
下面的是递归求解
#include <stdio.h>
#include <iostream>
using namespace std;
int n,cnt=0;
char num[10];
void dfs(int x){
if(x/16!=0) dfs(x/16);
if((x%16)<10) num[++cnt]=x%16+'0';
else num[++cnt]=x%16-10+'A';
}
int main(){
cin>>n;
dfs(n);
for(int i=1;i<=cnt;i++)
cout<<num[i];
return 0;
}
这是循环的
#include <stdio.h>
#include <iostream>
using namespace std;
int n,cnt=0;
char num[10];
int main(){
cin>>n;
while(n/16!=0){
int tmp=n%16;
if(tmp<10) num[++cnt]=tmp+'0';
else num[++cnt]=tmp-10+'A';
n/=16;
}
if(n!=0)
if(n<10) num[++cnt]=n+'0';
else num[++cnt]=n-10+'A';
for(int i=cnt;i>=1;i--)
cout<<num[i];
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询