缘由牛客拼数最大问题,不从结果出发那种做法-编程语言-CSDN问答
思路倒序数后从右逐位比较大小
int 反序数(int n)
{int nn = 0;while (n)nn = nn * 10 + n % 10, n /= 10;return nn;
}
void 牛客拼数位最大对比()
{//4 7 13 4 246;3 13 312 343;3 1 2 3int a[20]{}, x = 0, n = 0, aa = 0, nn = 0, m = 10;std::cin >> n;while (x < n){std::cin >> a[x];++x;}x = 0;while (x < n){nn = n; m = 10;while (--nn > x)if (反序数(a[x]) % m < 反序数(a[nn]) % m){aa = a[x] - a[nn], a[x] -= aa, a[nn] += aa;}else if (反序数(a[x]) % m == 反序数(a[nn]) % m){++nn, m *= 10;}else;++x;}x = 0;while (x < n)std::cout << a[x], ++x; std::cout << std::endl;
}