思路分析
1. 定义十全数:十全数是指一个数的各位数字之和等于10的数。 2. 输入处理:程序首先读取一个正整数k,表示需要找到的第k个十全数。- 枚举正整数:从1开始,逐个检查每个正整数是否是十全数。
- 计算一个数n的各位数字之和。
- 如果和等于10,返回true,否则返回false。
- 计数和输出:
- 使用一个计数器sum来记录找到的十全数的个数。
- 当sum等于k时,输出当前数i,因为它是第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; }
标签:10,正整数,check,sum,7840,int,枚举,全数 From: https://www.cnblogs.com/jyssh/p/18472638