【无标题】1173 十进制转换成n进制 (不用 栈 递归)

**

题目描述

**
输入一个十进制正整数,把这个数转换为n进制。

**

输入要求

**
输入两个整数num和n,num表示要转换的数,n表示要转换成的进制。如10 2表示要求将十进制数10转换成二进制数。(2<=n<17)

**

输出要求

**
输出转化后的进制数,每个数字之后跟一空格,如果数字大于9,则输出大写英文字母(10-16分别对应A-F)。

**

输入样例

**
10 2

**

输出样例

**
1 0 1 0

#include <stdio.h>

int main() {
	int num, n, t[10000], i, s;
	scanf("%d%d", &num, &n);
	for (i = 0; num != 0; i++)   // 当取整为0时说明除到了最后
	{
		t[i] = num % n;  		// 用数组存余数,也就是我们要的进制数
		num = num / n;			// 取整,继续除下去
		s = i;					//记录最终数组的下标,为倒叙输出余数做铺垫
	}
	for (i = s ; i >= 0; i--) 	// 遍历数组,倒叙输出
	{
		if (t[i] > 9)
			printf("%c ", t[i] - 10 + 'A');//大于9-10,如果是10则输出A,比A多几也就是比10多几,故差值代表溢出的数
		else
			printf("%d ", t[i]);
	}
	printf("\n");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值