原题:http://acm.hdu.edu.cn/showproblem.php?pid=2031
思路:
之前的题解有类似的题,注意负数和数据范围就可以了
源代码:
#include <cstdio> int m[1001]={}; int k,p=0; __int32 a; bool flag=false; int check() { if (p==0 && m[1]==0) return 1; else return 0; } int main() { while (~scanf("%d%d",&a,&k)) { flag=false; p=0; if (a<0) { a=0-a; flag=true; } while (a!=0) { p++; m[p]=a%k; a=a/k; } if (check()) { printf("0\n"); continue; } if (flag) printf("-"); for (int i=p;i>=1;i--) { if (m[i]>9) printf("%c",(char)(m[i]+55)); else printf("%d",m[i]); } printf("\n"); } }
本文详细解析了HDU 2031题目,并提供了一个C++实现的示例代码。该题目要求将一个十进制数转换为指定进制的表示形式,并考虑了负数和数据范围的情况。
338

被折叠的 条评论
为什么被折叠?



