codeforces Perfect Number(暴力)
B. Perfect Number
time limit per test
2 secondsmemory limit per test
256 megabytesinput
standard inputoutput
standard outputWe consider a positive integer perfect, if and only if the sum of its digits is exactly 10. Given a positive integer k, your task is to find the k-th smallest perfect positive integer.
Input
A single line with a positive integer k (1 ≤ k ≤ 10 000).
Output
A single number, denoting the k-th smallest perfect integer.
Examples
input
1
output
19
input
2
output
28
Note
The first perfect integer is 19 and the second one is 28.
题意很简单
求出第K个所有位数加起来和为10的数字
暴力的同时计数
数据为10000时对应的数字是10800100
复杂度O(n),可以卡过
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define maxn 10800100
int juge(int a){
int i = 0,cnt = 0;
while(a > 0){
cnt += a%10;
a/=10;
}
return cnt==10?1:0;
}
int main()
{
int cnt=0,i,n;
scanf("%d",&n);
for(i = 9;i <= maxn;i++){//个位数不可能是完美数,其实应该直接从19开始打表
if(juge(i))
cnt++;
if(cnt == n)
break;
}
printf("%d",i);
return 0;
}