博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(HDOJ2031)进制转换
阅读量:5739 次
发布时间:2019-06-18

本文共 1406 字,大约阅读时间需要 4 分钟。

Problem Description

输入一个十进制数N,将它转换成R进制数输出。
 
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
 
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
 
Sample Input
7 2
23 12
-4 3
 
Sample Output
111
1B
-11
 

 

1 #include 
2 #include
3 #include
4 #include
5 6 7 int a[1000]; 8 9 int absplus(int n)10 { return n>0?n:(-n); }11 12 void print(int a[],int n)13 {14 int i;15 for(i=n; i>=0; i--)16 {17 if(a[i]<10) 18 {19 printf("%d",a[i]);20 }21 else22 {23 switch(a[i]%10)24 {25 case 0:printf("A");break;26 case 1:printf("B");break;27 case 2:printf("C");break;28 case 3:printf("D");break;29 case 4:printf("E");break;30 case 5:printf("F");break;31 }32 }33 }34 }35 36 void convert(int n, int R)37 {38 int i=0,p,j;39 int t;40 t=n;41 n=absplus(n);42 a[0]=n%R;43 p=n/R;44 while(p>=R)45 {46 a[++i]=p%R;47 p=p/R;48 }49 a[++i]=p;50 if(t>0)51 {52 print(a,i);53 }54 else55 {56 printf("-");57 print(a,i);58 }59 printf("\n");60 61 }62 63 int main()64 {65 int N,R;66 while(scanf("%d%d",&N,&R)!=EOF)67 {68 if((N==1) || (N==0))69 printf("%d\n",N);70 else71 convert(N,R);72 }73 return 0;74 }

 

转载地址:http://lpyzx.baihongyu.com/

你可能感兴趣的文章
Oracle数据文件和临时文件的管理
查看>>
31-黄智涛-模拟调度
查看>>
安装 nodejs,npm,pm2
查看>>
centos6.4下安装mysql
查看>>
NYOJ111分数加减法
查看>>
MySQL - 特殊语法
查看>>
Xamarin 适配器(二) SimplerAdapterListView
查看>>
虚拟化(Virtualization)概览
查看>>
数据结构一 绪论
查看>>
MFC里ON_COMMAND_RANGE消息映射的ID问题
查看>>
jQuery常用及基础知识总结(二)
查看>>
Mockito教程
查看>>
F# ≥ C# (Tuple and Swap)
查看>>
[转]bashrc与profile区别
查看>>
Gram矩阵 迁移学习 one-shot 之类
查看>>
git 删除错误提交的commit
查看>>
1*1卷积层
查看>>
Accessibility辅助功能--一念天堂,一念地狱
查看>>
noi 7627 鸡蛋的硬度
查看>>
Sparse Matrix Multiplication
查看>>