给定一个数字等于N,你需要找到最小的数字T,满足:T的每一位上的数字之和等于N。

给定一个数字等于N,你需要找到最小的数字T,满足:T的每一位上的数字之和等于N。

显然,位数越小越好。于是从个位开始用 9 补位。递归写法比较简洁。

#include <bits/stdc++.h>
using namespace std;
int n;
void out(int x) {
    if (x <= 9) {//最高位
        printf("%d", x);
        return;
    }
    out(x - 9);
    printf("9");
}
int main() {
    scanf("%d", &n);
    out(n);
    return 0;
}