进制转换之十进制整数转换为R进制

小咪咪 2023-02-15 07:52 104阅读 0赞

一、题目

【题目描述】
输入一个十进制数N,把它转换成R进制数输出。
【Input】输入数据包含多个测试实例,每个测试实例包含两个整数N(int范围)和R(2<=R<=16,R<>10)。
【Ouput】为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,大写字母,等等)
【Sample Input】

  1. 7 2
  2. 23 12
  3. -4 3

【Sample ouput】

  1. 111
  2. 1B
  3. -11

二、代码

  1. #include<stdio.h>
  2. int main(){
  3. char hex[16]={ '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  4. int r,s,n,i=0;
  5. int flag=0;
  6. int a[100]={ 0};
  7. for(i=0;i>=0;i++){
  8. scanf("%d%d",&n,&r);
  9. if(n<0){
  10. flag=1;
  11. n=-n;
  12. }
  13. if(n==0){
  14. printf("0");
  15. }
  16. while(n>0){
  17. int m=n%r;
  18. a[i++]=m;
  19. n=n/r;
  20. }
  21. if(flag){
  22. printf("-");
  23. }
  24. for(i=i-1;i>=0;i--){
  25. s=a[i];
  26. printf("%c",hex[s]);
  27. }
  28. printf("\n");
  29. }
  30. return 0;
  31. }

发表评论

表情:
评论列表 (有 0 条评论,104人围观)

还没有评论,来说两句吧...

相关阅读