社区讨论

20分,debug吧。

P1143进制转换参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@m26vx9rz
此快照首次捕获于
2024/10/13 09:06
去年
此快照最后确认于
2024/10/13 11:31
去年
查看原帖
CPP
#include<iostream>
#include<cmath>
using namespace std;
long long fn1(long long n,string k){
	long long ans=0;
	for(long long i=0;i<k.length();i++){
		long long t1=k[i],t2=k.length()-1-i;
		if(t1>=48 && t1<=90) t1=t1-48;
		else if(t1>=65 && t1<=90) t1=t1-55;
		else t1=t1-87;
		ans+=t1*pow(n,t2);
	}
	return ans;
}
string fn2(long long k,int m){
	string ans="";
	long long k1=k;
	long long k2=99999;
	while(k1>=m){
		k2=k1%m;
	    k1=k1/m;
	    char t = k2;
	    if(k2>=0 && k2<=9) t=t+48;
	    else t=t+55;
	    ans+=t;
	}
	char t2=k1;
	if(k1>=0 && k1<=9) t2+=48;
	else t2+=55;
	ans+=t2;
	string l="";
	for(long long i=ans.length()-1;i>=0;i--) l+=ans[i];
	return l;
}
int main(){
	string k;
	long long n,m;
	cin>>n>>k>>m;
	long long t=fn1(n,k);
	cout<<fn2(t,m);
	return 0;
}
42行代码,20分

回复

5 条回复,欢迎继续交流。

正在加载回复...