CE 求助,为什么会 CE
  • 板块学术版
  • 楼主HeYilin
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/5/28 21:28
  • 上次更新2023/10/23 14:25:02
查看原帖
CE 求助,为什么会 CE
728459
HeYilin楼主2023/5/28 21:28
#include<bits/stdc++.h>
typedef long long int ll;
using namespace std;
const int maxn=1e6+10;
char a[maxn],b[maxn],temp[maxn];
int step;
void copy(int *aa,int *bb){// a[] == b[]
	for(int i=0;i<maxn;i++)aa[i]=bb[i];
}
void add(int *aa,int *bb){// a[] + b[] -> a[]
	for(int i=0;i<maxn-1;i++){
		int x=aa[i]-'0',y=bb[i]-'0';
		x+=y;
		aa[i]=x+'0';
	}
	for(int i=0;i<maxn-1;i++){
		int x=aa[i+1]-'0',y=aa[i]-'0';
		x+=(y/10);
		y%=10;
		aa[i+1]=x+'0',aa[i]=y+'0';
	}
}
bool check(int *aa){// a[] == 1 ?
	if(aa[0]=='1'){
		for(int i=1;i<maxn-1;i++)if(aa[i]!='0')return 0;
		return 1;
	}return 0;
}
void times(int *aa,int num){// a[] * num -> a[]
	for(int i=maxn-2;i>=0;i--){
		int x=aa[i]-'0';
		x*=num;
		aa[i]=x+'0';
	}
	for(int i=0;i<maxn-1;i++){
		int x=aa[i+1]-'0',y=aa[i]-'0';
		x+=(y/10);
		y%=10;
		aa[i+1]=x+'0',aa[i]=y+'0';
	}
}
void div(int *aa,int *bb,int num){// a[] / num -> b[]
	memset(bb,'0',sizeof(bb));
	int x=0;
	for(int i=maxn-1;i>=0;i--){
    	x=x*10+(aa[i]-'0');
		bb[i]=(x/num)+'0';
		x%=num;
	}
}
void Pow(int x){// 2 ^ x -> b[]
	memset(b,'0',sizeof(b));
	b[0]='1';
	while(x--)times(b,2);
	add(a,b);
}
void print(int *aa){// cout -> a[]
	bool flag=0;
	for(int i=maxn-1;i>=0;i--){
		if(!flag){
			if(aa[i]!='0')flag=1;
			else continue;
		}cout<<aa[i];
	}
}
int main(){
	cin>>temp;
	for(int i=0;i<strlen(temp);i++){
		if(temp[i])Pow(i);
	}
	print(a);
	return 0;
}
2023/5/28 21:28
加载中...