《数据结构与算法:进制与分数》

算法

将10进制的数转换成2-16进制中的一种

非递归实现

char a[N];

void convert(int n,int base)
{
	int i;
	i=0;
	while(n){
		a[i]=n%base;
		if(a[i]>=10)
		  a[i]='A'+a[i]-10;
		else
		  a[i]+='0';
		i++;
		n/=base;
	}
	i--;
	while(i>=0)
	  printf("%c",a[i--]);
	printf("\n");
 } 


递归实现

void convert(int n,int base)
{
	char digit;
	if(n){
		convert(n/base,base);
		digit=n%base;
		if(digit>=10)
		  digit='A'+digit-10;
		else
		  digit+='0';
		printf("%c",digit);
	}
 } 

说明:对于0进行单独处理即可

 

题目

Bailian3255 十进制到六进制【进制】

51Nod_1116 K进制下的大数【进制】

51Nod_1925 进制转换【进制+枚举】

PAT-B 1057 数零壹【进制】

PAT-B 1062 最简分数

PAT-B 1022 D进制的A+B【进制】

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值