85行,样例全过,爆零,悬关
查看原帖
85行,样例全过,爆零,悬关
1327102
tysy_020楼主2025/1/20 18:18
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
string a[1005],z[1005],ans[1005];
int sna[1005];
string wat(int x)
{
	string qw="",wq="";
	while(x>0)
	{
		if(x%16<10)
			qw=qw+char(x%16+48);
		else
			qw=qw+char(x%16+55);
		x=x/16;
	}
	if(qw.size()<2)
		qw=qw+'0';
	reverse(qw.begin(),qw.end());
	wq=qw;
	return wq;
}
int main()
{
	long long n,q=0,w=0,e,p;
	string s="";
	cin >> n;
	if(n==0)
	{
		cout << "00";
		return 0;
	}
	while(n>0)
	{
		p=n%2;
		if(p==1)
			s=s+'1';
		else
			s=s+'0';
		n=n/2;
	}
	if(s.size()%7!=0)
	{
		while(s.size()%7!=0)
			s=s+'0';
	}
	while(1)
	{
		e=q;
		for(int i=e;i<q+7;i++)
			a[w]=a[w]+s[i];
		q=q+7;
		w++;
		if(q>=s.size())
			break;
	}
	for(int i=w;i>=0;i--)
	{
		if(i==0)
			a[i]=a[i]+'1';
		else
			a[i]=a[i]+'0';
		for(int l=a[i].size()-1;l>=0;l--)
			z[w-i]=z[w-i]+a[i][l];
	}
	long long r;
	for(int i=1;i<=w;i++)
	{
		r=1;
		for(int l=z[i].size()-1;l>=0;l--)
		{
			if(z[i][l]=='1')
				sna[i]=sna[i]+r;
			r=r*2;
		}
		ans[i]=wat(sna[i]);
	}
	for(int i=w;i>0;i--)
		cout << ans[i] << ' ';
    return 0;
}

2025/1/20 18:18
加载中...