求调
  • 板块灌水区
  • 楼主xpg007
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/30 16:55
  • 上次更新2024/4/30 19:54:20
查看原帖
求调
1024680
xpg007楼主2024/4/30 16:55

P1015 [NOIP1999 普及组] 回文数

AC 0%(样例过了)

#include <bits/stdc++.h>
using namespace std;
string a, b;
void rev(){
	for (int i = a.size() - 1; i >= 0; i--)
		b.push_back(a[i]);
}
void add(int base){
	int t = 0;
	for (int i = a.size() - 1; i >= 0; i--){
		int p = a[i] + b[i] + t;
		a[i] = (p % base);
		t = p / base;
	}
}
bool check(){
	for (int i = 0; i < a.size() / 2; i++)
		if (a[i] != a[a.size() - 1 - i])
			return false;
	return true;
}
void huiwen(int base){
	for (int i = 1; i <= 30; i++){
		if (check()){
			cout << "STEP=" << (i - 1);
			return ;
		}
		rev();
		add(base);
		while (a[0] == '0')
			a = a.substr(1);
	}
	cout << "Impossible!";
}
int main(){
	int base;
	string s;
	cin >> base >> s;
	for (int i = 0; i < s.size(); i++){
		if (s[i] >= '0' && s[i] <= '9')
			a += s[i] - '0';
		if (s[i] >= 'A' && s[i] <= 'Z')
			a += s[i] - 'A' + 10;
	}
	huiwen(base);
	return 0;
}
2024/4/30 16:55
加载中...