Мы считаем положительное целое число идеальным тогда и только тогда, когда сумма его цифр равна ровно 10. При положительном целом целое число k, ваша задача — найти k-ое наименьшее идеальное положительное целое число.
Входные данные: одна строка с положительным целым числом k (1≤k≤10000).
Выход: одно число, обозначающее k-ое наименьшее совершенное целое число.
У меня есть решение для этого вопроса. это:
Код: Выделить всё
int main(){
int k=0, m=19, c=0, sum=0;
scanf("%d", &k);
while(true){
int n = m;
sum = 0;
while(n){
sum+=n%10;
n=n/10;
}
// printf("%d %d %d\n", n, sum, c);
if(sum == 10) c++;
if(c == k) break;
m++;
}
printf("%d", m);
return 0;
}
Я думал об этой проблеме около часа и затем решил погуглить ответ. Это решение меня действительно разочаровало. Я ожидал, что в этой задаче будет скрыта какая-то хитрая математика.
Подробнее здесь: https://stackoverflow.com/questions/786 ... ect-number