50分高精度切割求助
查看原帖
50分高精度切割求助
1063799
chenshenqi楼主2024/3/24 10:41
#include <bits/stdc++.h>
using namespace std;
#define int long long
int zhuan(string s,int x){
	int ans=0;
    for(int i=0;i<s.size();i++)
		{
			if(s[i]<='9'&&s[i]>='0'){
				ans = ans * x + s[i] - '0';
			}	
			else
			{
				ans = ans * x + s[i] -'A' + 10;
			}
		} 
	return ans;
}//x zhuan 10
string zhuan_again(int a,int r){
    string b;
    while (a!=0){
    	if (a%r<10){b+=to_string(a%r);}
        else{
			char c=a%r+'A'-10;  
		    b+=c;
		}
        a/=r;
        
    }
	for (int i=0; i<b.size(); i++){
			b[i]=tolower(b[i]);
		}
    reverse(b.begin(),b.end());
    return b;
}// 10 zhuan x
string work(string a){
	reverse(a.begin(),a.end());
	string ans="";
	int n=a.size();
	for (int i=0; i<n; i+=4){
		string tmp=a.substr(i,4);
		reverse(tmp.begin(),tmp.end());
		string ap=zhuan_again(zhuan(tmp,8),16);
		reverse(ap.begin(),ap.end());
		reverse(ans.begin(),ans.end());
		ans+=ap;
		reverse(ans.begin(),ans.end());
	}
	return ans;
}
signed main(){  
	string a;
	cin >> a;
	cout << work(a);
	
	return 0;
}

麻烦各位大佬帮小的找找错误,样例全过,后5个WA

2024/3/24 10:41
加载中...