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;
}

By

Leave a Reply

Discover more from Geeky Codes

Subscribe now to keep reading and get access to the full archive.

Continue reading