别的编译器上运行样例也通过了,但是洛谷上完全不行,恳请大佬指正
查看原帖
别的编译器上运行样例也通过了,但是洛谷上完全不行,恳请大佬指正
474451
mxl0605楼主2021/1/24 18:08
using namespace std;
#include <iostream>
#include <string>
#include <cmath>
unsigned long long  Reverse (unsigned long long n){
	unsigned long long  number=0,remainder,merchant;
	while(n>0){
		remainder=n%10;
		number=(number+remainder)*10;
		n=n/10;
	}
	return number/10;
}
unsigned long long change (string M,int length,int N){
	int temp=0,temp1=0;
	int k=length;
	for(int i=0;i<length;i++){
		k--;
		if(M[i]<='9'&&M[i]>='0'){
		  temp1=M[i]-48;
		  temp+=temp1*pow(N,k);}
		else if(M[i]>='a'&&M[i]<='z'){
		        temp1=M[i]-87;
		        temp+=temp1*pow(N,k);
					}
		    else{
		        temp1=M[i]-55;
		        temp+=temp1*pow(N,k);}
	}
	return temp;
}
int main(){
	unsigned long long N;
	string M;
	int step=0;
	cin>>N>>M;
	int length=M.length();
	int temp=change(M,length,N);
	while(Reverse(temp)!=temp){
		step++;
		temp+=Reverse(temp);
	}
	if(step<=30)
	   cout<<"STEP="<<step;
	else  
	   cout<<"Impossible!";
	return 0; 
}

2021/1/24 18:08
加载中...