任意进制转换
View Code
#include<stdio.h>
#include<string>
#include<stack>
using namespace std;
int main(){
int m,i,j,k;
char ch[1000],map[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int t;
scanf("%d",&t);
while(t--){
__int64 n=0;
stack<int>s;
scanf("%d%d%s",&m,&k,ch);
for(i=0;i<strlen(ch);i++){//m进制转换为10 进制
if (ch[i]>64) n=n*m+ch[i]-55;
else n=n*m+ch[i]-48;
}
do{
s.push(n%k);
n/=k;
}
while (n);
while (!s.empty()){
printf("%c",map[s.top()]);
s.pop();
}
printf("\n");
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 终于决定:把自己家的能源管理系统开源了!
· 外部H5唤起常用小程序链接规则整理
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· WPF 怎么利用behavior优雅的给一个Datagrid添加一个全选的功能
· 了解 ASP.NET Core 中的中间件