25分,计算时出了奇怪的问题
查看原帖
25分,计算时出了奇怪的问题
550974
LucaZSC楼主2022/8/14 16:41
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
using namespace std;
long long n,a[300005],m,b[300005];
string as;
bool hui(long long n){
	for(int i=0;i<n;i++){
		if(a[i]!=a[n-i-1])return 0;
	}
	return 1;
}
int main(){
	cin>>m>>as;
	n=as.size();
	for(int i=0;i<n;i++){
		a[i]=as[i]-'0';
	}
	for(int ii=1;ii<=30;ii++){
		if(hui(n)){
			cout<<"STEP="<<ii;
			return 0;
		}
		memset(b,0,sizeof(b));
		for(int i=0;i<n;i++){
			b[i]=a[i];
		}
		for(int i=0;i<n;i++){
			a[i]+=b[n-i-1];
		}
		for(int i=0;i<n;i++){
			a[i+1]+=a[i]/m;
			a[i]%=m;
		}
		if(a[n])n++;
	}
	cout<<"Impossible!";
	return 0;
}
2022/8/14 16:41
加载中...