緣由牛客拼數最大問題,不從結果出發那種做法-編程語言-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;
}