记录编号 434330 评测结果 AAAAAAAAAA
题目名称 [NOIP 2000]进制转换 最终得分 100
用户昵称 Gravatar落痕 是否通过 通过
代码语言 C++ 运行时间 0.018 s
提交时间 2017-08-07 18:34:48 内存使用 4.13 MiB
显示代码纯文本
  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. using namespace std;
  5. int n,r,aa,bb,cc;
  6. int q[1000000],ql,nn;
  7. char bs(int x)
  8. {
  9. if(x==10) return 'A';
  10. if(x==11) return 'B';
  11. if(x==12) return 'C';
  12. if(x==13) return 'D';
  13. if(x==14) return 'E';
  14. if(x==15) return 'F';
  15. if(x==16) return 'G';
  16. if(x==17) return 'H';
  17. if(x==18) return 'I';
  18. if(x==19) return 'J';
  19. if(x==20) return 'K';
  20. }
  21. void work()
  22. {
  23. memset(q,0,sizeof(q));
  24. ql=0;
  25. while(n!=0)
  26. {
  27. aa=n%r;
  28. bb=n/r;
  29. if(aa<0)
  30. {
  31. aa=aa-r;
  32. bb++;
  33. }
  34. n=bb;
  35. ql++;
  36. q[ql]=aa;
  37. }
  38. cout<<nn<<"=";
  39. for(int i=ql;i>=1;i--)
  40. {
  41. if(q[i]<10) cout<<q[i];
  42. else cout<<bs(q[i]);
  43. }
  44. cout<<"(base"<<r<<")";
  45. }
  46. int main()
  47. {
  48. freopen("fjz.in","r",stdin);
  49. freopen("fjz.out","w",stdout);
  50. while(cin>>n>>r)
  51. {
  52. nn=n;
  53. if(n==0)
  54. {
  55. cout<<"0=0(base"<<r<<")";
  56. cout<<endl;
  57. continue;
  58. }
  59. work();
  60. }
  61. return 0;
  62. }