首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一道c语言编程题,第29题,将十进制转换成任意进制数

将十进制转换成任意进制数

#include

// 将十进制数转换成任意进制数

void convert(int num, int base) {

  if (num == 0) {

      return;

  }

  convert(num / base, base);

  printf("%d", num % base);

}

int main() {

  int num, base;

  printf("请输入一个十进制数:");

  scanf("%d", &num);

  printf("请输入要转换的进制数:");

  scanf("%d", &base);

  printf("%d的%d进制数为:", num, base);

  convert(num, base);

  printf("\n");

  return 0;

}

代码的思路是通过递归的方式将十进制数转换成任意进制数

首先从用户输入中获取要转换的十进制数和目标进制数。

然后调用convert()函数进行转换,该函数采用递归的方式进行转换。

convert()函数中,如果要转换的数num等于 0,则直接返回,否则继续进行转换。

在每次递归时,先将num除以目标进制数base,得到商和余数,然后递归调用convert()函数,将商作为新的参数传入。

最后,在每次递归返回时,输出余数,这样就可以得到转换后的任意进制数。

需要注意的是,该程序假设目标进制数小于等于 10。如果要支持更高的进制数,可以使用字母表示数字。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230314A03ZG300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券