玄关
查看原帖
玄关
1350193
61deng楼主2024/11/24 14:54

零分求调

#include<bits/stdc++.h>
using namespace std;
string s,sl;
int a[100000],er[8][1000000];
int main (){
	/*int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int m;
		cin>>m;
		cin>>s;
		for(int j=0;j<s.size();j++){
			if(s[j]>='A'&&s[j]<='Z'){
				a[j]=s[j]-'A'+10;
			}else{
				a[j]=s[j]-'0';
			}
		}
		long long ans=0;
		int l=0;
		for(int j=s.size()-1;j>=0;j--){
			ans+=a[j]*pow(m,l);
			l++;
		}
		cout<<ans<<endl;
	}*/
	long long n,o=0;
	cin>>n;
	while(1){
		a[o]=n%2;
		o++;
		n/=2;
		if(n==0){
			break;
		}
	}
//	for(int i=o-1;i>=0;i--){
//		cout<<a[i];
//	} 
//	cout<<endl;
	int q=(o+7)/8;
	o++;
	for(int j=0;j<q;j++){
		int p=1;
		for(int i=o;i>o-8;i--){
			er[p][j]=a[i];
			p++;
		}
		if(o>=8){
			er[0][j]=1;
			o-=8;
		}else{
			for(int i=0;i<8;i++){
				int ls;
				ls=a[i+1];
				a[i+1]=a[i];
				a[i]=0;
			}
			er[0][j]=0;
		}
	}
	for(int j=0;j<q;j++){
		for(int i=0;i<8;i++){
			cout<<er[i][j];
		}
		cout<<endl;
	}
	for(int i=0;i<q;i++){
		string sl="";
		int ans=0;
		for(int j=0;j<8;j++){
			ans+=er[j][i]*pow(j,2);
		}
		int e=0;
		while(1){
			if(ans%16>=10){
				sl[e]=ans%16-10+'A';
			}else{
				sl[e]=ans%16+'0';
			}
			e++;
			ans/=16;
			if(ans==0){
				break;
			}
		}
		for(int j=e-1;j>=0;j--){
			cout<<sl[j]<<" ";
		}
	}
}
2024/11/24 14:54
加载中...