Lily likes to play games with integers. She has created a new game where she determines the difference between a number and its reverse. For instance, given the number 12, its reverse is 21. Their difference is 9 . The number 120 reversed is 21, and their difference is 89.
She decides to apply her game to decision making. She will look at a numbered range of days and will only go to a movie on a beautiful day.
Given a range of numbered days[i,….j], and a number k, determine the number of days in the range that are beautiful. Beautiful numbers are defined as numbers where [i-reverse(i)] is evenly divisible by . If a day’s value is a beautiful number, it is a beautiful day. Return the number of beautiful days in the range.
Function Description
Complete the beautifulDays function in the editor below. beautifulDays has the following parameter(s):
- int i: the starting day number
- int j: the ending day number
- int k: the divisor
Returns
- int: the number of beautiful days in the range
Input Format
A single line of three space-separated integers describing the respective values of i,j , and k.
Constraints
- 1<=i<=j<=2*10^6
- 1<=k<=2*10^9
Sample Input
20 23 6
Sample Output
2
Explanation
Lily may go to the movies on days 20,21 ,22 , and 23. We perform the following calculations to determine which days are beautiful:
- Day 20 is beautiful because the following evaluates to a whole number: [20-02]/6=18/6=3
- Day 21 is not beautiful because the following doesn’t evaluate to a whole number: [21-12]/6=9/6=1.5
- Day 22 is beautiful because the following evaluates to a whole number: [22-22]/6=0
- Day 23 is not beautiful because the following doesn’t evaluate to a whole number: [23-32]/6=9/6=1.5
Only two days, 22 and 23, in this interval are beautiful. Thus, we print 2 as our answer.
Python Implementation
def beautifulDays(i, j, k): days = list(range(i, j+1)) days_reverse = [int(str(i)[::-1]) for i in days] return sum(str(abs(days[i] - days_reverse[i])/k).endswith('.0') for i in range(len(days)))
Java Implementation
public static int beautifulDays(int i, int j, int k) { // Write your code here int beatifulDays = 0; for (int a=i; a<j+1; a++ ) { int temp = reverseMyNumber(a); if (Math.abs(temp-a)%k==0) { beatifulDays++; } } return beatifulDays; } public static int reverseMyNumber(int num) { int result = 0; while (num > 0){ result = (result *10) + (num%10); num = num/10; } return result; } }
JavaScript Implementation
function beautifulDays(i, j, k) { let beau = 0; let arr = []; for (let a = 0 ; a <= j - i ; a++) { arr[a] = i + a; } for (let b = 0 ; b < arr.length ; b++) { let str = arr[b].toString(); let rev = str.split("").reverse().join(""); rev = parseInt(rev); if (((arr[b] - rev) % k) === 0) { beau++; } } return beau; }