原题: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"); } }