Problem Statement
John thinks 4 and 7 are lucky digits, and all other digits are not lucky. A lucky number is a number that contains only lucky digits in decimal notation.
Some numbers can be represented as a sum of only lucky numbers. Given an int n, return a int[] whose elements sum to exactly n. Each element of the int[] must be a lucky number. If there are multiple solutions, only consider those that contain the minimum possible number of elements, and return the one among those that comes earliest lexicographically. A int[] a1 comes before a int[] a2 lexicographically if a1 contains a smaller number at the first position where they differ. If n cannot be represented as a sum of lucky numbers, return an empty int[] instead.
Definition
- Class:
- TheLuckySum
- Method:
- sum
- Parameters:
- int
- Returns:
- int[]
- Method signature:
- int[] sum(int n)
- (be sure your method is public)
Constraints
- n will be between 1 and 1,000,000,000, inclusive.
Examples
11
Returns: {4, 7 }It is simple: 11 = 4 + 7.12
Returns: {4, 4, 4 }Now we need three summands to get 12.13
Returns: { }And now we can not get 13 at all.100
Returns: {4, 4, 4, 44, 44 }