站内题求助(玄关)
  • 板块学术版
  • 楼主theb0t
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/17 21:00
  • 上次更新2023/11/2 13:11:28
查看原帖
站内题求助(玄关)
997236
theb0t楼主2023/10/17 21:00

https://www.luogu.com.cn/problem/U364331

没有输出的问题出在哪里

#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int a2[1005][10];
int zhuan(long long n)
{
	int l=0;
	while(n)
	{
		a[++l]=n%2;
		n/=2;
	}
	int b[10005],l2=0;
	for(int i=l;i>=1;i--) b[++l2]=a[i];
	for(int i=1;i<=l2;i++) a[i]=b[i]; 
	return l;
}
vector<char> zhuan16(int a[])
{
	int s=0;
	int k=0;
	for(int i=8;i>=1;i--) s+=(a[i]*pow(2,k++));
	vector<char> v(10,'0');
	int len=0;
	while(s)
	{
		int f=s%16;
		s/=16;
		if(f>9)
			switch(f)
			{
				case 10:v[++len]='A';break;
				case 11:v[++len]='B';break;
				case 13:v[++len]='C';break;
				case 14:v[++len]='D';break;
				case 15:v[++len]='E';break;
			}
		else v[++len]=f+'0';
	}
	reverse(v.begin()+1,v.end()+1);
	return v;
}
signed main()
{
	ios::sync_with_stdio(false);
	long long n;
	cin>>n;
	int l=zhuan(n);
	int cnt=0;
	for(int i=l;i>=1;i-=8)
	{
		cnt++;
		for(int j=1;j<=7;j++) a2[cnt][j]=a[l-i+j];
		int b[10056]={0};
		int ff=0;
		for(int j=7;j>=1;j--) b[++ff]=a2[cnt][j];
		for(int j=1;j<=ff;j++) a2[cnt][j]=b[j]; 
	}
	for(int i=1;i<cnt;i++)
	{
		for(int j=8;j>=2;j--) a2[i][j]=a2[i][j-1];
		a[1]=1;
	}
	for(int j=8;j>=2;j--) a2[cnt][j]=a2[cnt][j-1];
	a2[cnt][1]=0;
	for(int i=1;i<=cnt;i++)
	{
		vector<char> v=zhuan16(a2[i]);
		for(int i=1;i<=2;i++) cout<<v[i];
		cout<<' ';
	}
	return 0;
}
2023/10/17 21:00
加载中...