转进制

来源:互联网 发布:软件研制总结报告 编辑:程序博客网 时间:2024/06/11 02:47

转进制


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 266     通过数: 211 

【题目描述】

用递归算法将一个十进制数X转换成任意进制数M(M<=16)。

【输入】

一行两个数,第一个十进制数X,第二个为进制M。

【输出】

输出结果。

【输入样例】

31 16 {将十进制31转化为十六进制数}

【输出样例】

1F

【来源】


No

【代码】

#include  void convert(int n, int base)  {      char digit;      if(n) {          convert(n/base,base); //使用递归算法来实现进制的转换:除K取余法         digit = n%base;          if(digit >= 10)              digit = 'A' + digit - 10; //如果余数大于等于10,则用英文字母ABCDEF分别表示数字10,11,12,13,14,15         else              digit += '0';  //如果余数小于10,则直接用数字表示        printf("%c", digit);      }  }  int main()  {      int x, m;    scanf("%d%d", &x, &m);      convert(x, m);      printf("\n");      return 0;  }  

【说明】

vc6.0运行成功,提交通过。

【补充知识】

除K取余法:https://baike.baidu.com/item/%E9%99%A4k%E5%8F%96%E4%BD%99%E6%B3%95/19385576?fr=aladdin

原创粉丝点击