社区讨论

求解!!!

灌水区参与者 3已保存回复 3

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@m61nhzyg
此快照首次捕获于
2025/01/18 11:50
去年
此快照最后确认于
2025/11/04 11:24
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
string szr(long long n){//十转二
	string s="",s1="";
	while(n>0){
		s+=(n%2)+48;
		n/=2;
	}
	for(int i=s.size()-1;i>=0;i--)s1+=s[i];
	return s1;	
}
long long ezs(string x){//二转十
	int sum=0;
	for(int i=0;i<x.length();i++)sum+=(x[i]-48)*pow(2,x.length()-1-i);
	return sum;
}
string szsl(long long x){//十转十六
	string s1,s2;
	while(x>0){
		if(x%16>=10)s1+=x%16+55;
		else s1+=x%16+48;
		x/=16;
	}
	for(int i=s1.length()-1;i>=0;i--)s2+=s1[i];
	if(s2.length()==1) return "0"+s2;
	return s2;
}	
int main(){
	long long n;
	cin>>n;
	if(n==0){
		cout << "00";
		return 0;
	}
	string s=szr(n),s1;
	int j=0;
	for(int i=s.length()-1;i>s.length()-s.length()%7;i--){
		s1+=s[i];
		j++;
		if(j==7){
			reverse(s1.begin(),s1.end());
			s1="1"+s1;
			cout << szsl(ezs(s1))<<" ";
			j=0;
		}	
	}
	string s2;
	for(int i=0;i<s.length()%7;i++){
		s2+=s[i];
	}
	cout << szsl(ezs(s2));
	return 0;
}
哪里错了

回复

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

正在加载回复...