思路分析
 
1. 
定义十全数:十全数是指一个数的各位数字之和等于10的数。
 
2. 
输入处理:程序首先读取一个正整数k,表示需要找到的第k个十全数。
 
- 枚举正整数:从1开始,逐个检查每个正整数是否是十全数。
 
4. 
检查函数check:
 
 
- 如果和等于10,返回true,否则返回false。
 
 
 
- 当sum等于k时,输出当前数i,因为它是第k个十全数。
 
6. 
终止条件:一旦找到第k个十全数,程序输出结果并终止。
 
关键点
 
- 逐个检查:程序通过逐个检查每个正整数来找到十全数。
 
- 效率:由于k的范围是1到10000,程序的效率足以在合理时间内找到结果。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e3+10, inf = 0x3f3f3f3f;
// 检查函数:判断一个数的各位数字之和是否等于10
int check(int n) {
    int sum = 0;
    while(n) {
        sum += n % 10; // 取出最低位数字并加到sum
        n /= 10; // 去掉最低位数字
    }
    return sum == 10; // 返回sum是否等于10
}
int main() {
    int k, sum = 0;
    cin >> k; // 读取输入的正整数k
    for(int i = 1; ; i++) { // 从1开始枚举所有正整数
        if(check(i)) sum++; // 如果i是十全数,计数加1
        if(sum == k) { // 如果找到了第k个十全数
            cout << i << endl; // 输出结果
            return 0; // 结束程序
        }
    }
    return 0;
}