Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
150231 | 龚梓嘉 | K进制数转L进制数 | C++ | 通过 | 100 | 0 MS | 252 KB | 612 | 2024-06-01 16:39:17 |
#include<bits/stdc++.h> #include<iostream> using namespace std; int toOct (int n,string s) { int i,t=0; for (i=0;i<s.size();i++) { if (s[i]>='0'&&s[i]<='9') t=t*n+s[i]-48; else if (s[i]>='A'&&s[i]<='F') t=t*n+s[i]-55; else if (s[i]>='a'&&s[i]<='f') t=t*n+s[i]-87; } return t; } string Oct2N(int x,int n) { const string a="0123456789ABCDEF"; string s=""; if (x==0) return "0"; for (;x>0;x/=n) s=a[x%n]+s; return s; } int main(){ int K,L; string N; while (cin>>K>>N>>L){ int octN=toOct(K,N); string equalN=Oct2N(octN,L); cout<<equalN<<'\n'; } }