Microsoft DailyCodingProblem Easy

Problem

A number is considered perfect if its digits sum up to exactly 10. Given a positive integer n, return the n-th perfect number. For example, given 1, you should return 19. Given 2, you should return 28.

Solution

Brute Force - O(n) time - O(1) space

class Solution {
	int digitSum(int number) {
		int sum = 0;
		while (number != 0) {
			sum += number % 10;
			number /= 10;
		}
		return sum;
	}
 
	int perfectNumber(int digit) {
		int count = 0;
		int number = 19;
		while(true) {
			if (digitSum(number) == 10) {
				count++;	
			}
			if (count == digit) return number;
			number++;
		}
	}
}