B3619 题解

Jerrlee✅

2022-03-28 08:01:34

Solution

## 题意 给一个 $10$ 进制数 $n$,将其转化为 $x$ 进制。 ## 思路 把每个十进制数用整形数读入,进行数位分离,对于每一种情况打表,一一对应转化成字符串,存入到 `sum` 这个字符串中即可。 注意特判数字为 $0$ 的情况。 推荐练习题:[P1143](https://www.luogu.com.cn/problem/P1143),可以参考我的 [另一篇题解](https://czy-ak-ioi.blog.luogu.org/b3620-ti-jie) AC 那题。 ## 代码 ```cpp #include<bits/stdc++.h> using namespace std; string ten_to_anything(int n,int s){ if(s==0) return "0"; int r,q=s; string sum; while(q!=0){ r=q%n; q=q/n; char a; switch(r){ case 0:a='0';break; case 1:a='1';break; case 2:a='2';break; case 3:a='3';break; case 4:a='4';break; case 5:a='5';break; case 6:a='6';break; case 7:a='7';break; case 8:a='8';break; case 9:a='9';break; case 10:a='A';break; case 11:a='B';break; case 12:a='C';break; case 13:a='D';break; case 14:a='E';break; case 15:a='F';break; case 16:a='G';break; case 17:a='H';break; case 18:a='I';break; case 19:a='J';break; case 20:a='K';break; case 21:a='L';break; case 22:a='M';break; case 23:a='N';break; case 24:a='O';break; case 25:a='P';break; case 26:a='Q';break; case 27:a='R';break; case 28:a='S';break; case 29:a='T';break; case 30:a='U';break; case 31:a='V';break; case 32:a='W';break; case 33:a='X';break; case 34:a='Y';break; case 35:a='Z';break; } sum.insert(0,1,a); } return sum; } int main(){ int m; int s; cin>>s>>m; cout<<ten_to_anything(m,s); } ``` [AC 记录](https://www.luogu.com.cn/record/72586599)