HOJ:2031 进制转换
2013-07-18 01:19
393 查看
进制转换
TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):18495AcceptedSubmission(s):10386
[align=left]ProblemDescription[/align]
输入一个十进制数N,将它转换成R进制数输出。
[align=left]Input[/align]
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16,R<>10)。
[align=left]Output[/align]
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
[align=left]SampleInput[/align]
72
2312
-43
[align=left]SampleOutput[/align]
111
1B
-11
解题思路:
以第一个例子72 7%2=1 7/2=3 3%2=1 3/2=1 1%2=1 1/2=0//结束 结果是111
我的代码:
#include<stdio.h> charA[100]; intmain() { intnum,r,i,t,j,mark; while(~scanf("%d%d",&num,&r)){ i=0; mark=0; if(num<0){ mark=1; num=-num; } while(num>0){ t=num%r; if(t>9)A[i]=t-10+'A'; elseA[i]=t+'0'; ++i; num/=r; } if(mark==1)printf("-"); for(j=i-1;j>=0;j--){ printf("%c",A[j]); } printf("\n"); } return0; }
大神级别代码:
#include<stdio.h> #include<string.h> voidttor(intn,intr) { if(n) { ttor(n/r,r); printf("%c",n%r>9?n%r-10+'A':n%r+'0'); } } intmain(void) { intn; intr; while(scanf("%d%d",&n,&r)!=EOF) { if(n>0) ttor(n,r); elseif(!n)//表示n==0 putchar('0'); else { putchar('-'); ttor(-n,r); } putchar('\n'); } return0; }
相关文章推荐
- HOJ:2031 进制转换
- HDU 2031 进制转换
- 杭电ACM 2031 进制转换
- HDU 2031 进制转换
- 2031 进制转换
- [HdOJ]2031 进制转换
- HDU-2031-进制转换
- hdoj 2031 进制转换
- 进制转换 hd 2031
- hdoj2031 任意进制转换
- 【hdoj2031】进制转换(10进制转换为2—16进制)
- hdu 2031 进制转换
- hdu 2031 进制转换
- 进制转换 HDU 2031 注意-2147483648变为正数后用int存会溢出
- 杭电2031(进制转换)
- 杭电(hdu)2031 进制转换
- HDOJ 2031 进制转换
- Hdu-2031-进制转换 [水题]
- ACM_HDU 2031 进制转换
- hdu 2031 进制转换