全WA求助!!样例过了,不知道哪里有问题,求大佬细说
查看原帖
全WA求助!!样例过了,不知道哪里有问题,求大佬细说
1052511
XinFengIneverleft楼主2023/8/15 19:00
#include <bits/stdc++.h>
using namespace std;
string a;
int lena;

inline long long ch(int a, int n) {
	int k = 1;
	if (n == 0)
		return 1;
	for (int i = 0; i < n; i++)
		k *= a;
	return k;
}

inline long long he(long long x) {
	string s;
	s = to_string(x);
	int sumhe = 0;
	for (int j = 0; j < lena; j++)
		sumhe += s[j] - 48;
	return sumhe;
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int T;
	cin >> T;
	for (int i = 0; i < T; i++) {
		cin >> a;
		lena = a.length();
		long long n = 0;
		for (int j = 0; j < lena; j++) {
			if (j == 0)
				n += (a[lena - j - 1] - 48);
			else
				n += (a[lena - j - 1] - 48) * ch(10, j);
		}
		int j = 1;
		while (j <= lena) {
			if (he(n + ch(10, j - 1)) > he(n - ch(10, j - 1)) && he(n + ch(10, j - 1)) > he(n))
				n = n + ch(10, j - 1);
			else if (he(n - ch(10, j - 1)) > he(n + ch(10, j - 1)) && he(n - ch(10, j - 1)) > he(n))
				n = n - ch(10, j - 1);
			else if (he(n) > he(n + ch(10, j - 1)) && he(n) > he(n - ch(10, j - 1)))
				n = n;
			a = to_string(n);
			lena = a.length();
			j++;
		}
		int sum = 0;
		for (int j = 0; j < lena; j++)
			sum += a[j] - 48;
		cout << sum << "\n";
	}
	return 0;
}
2023/8/15 19:00
加载中...