Рубрики

Подсчет чисел, чье отличие от обратного является произведением k

Даны два числа l и r. Подсчитайте общее число между l и r, которое, когда вычитается из соответствующего обратного, разность является произведением k.

Примеры:

Input : 20 23 6
Output : 2
20 and 22 are the two numbers.
|20-2| = 18 which is a product of 6
|22-22| = 0 which is a product of 6

Input : 35 45 5
Output : 2
38 and 44 are the two numbers.
|38-83| = 45 which is a product of 5
|44-44| = 0 which is a product of 5

Подход: для каждого числа между заданным диапазоном проверьте, делится ли разница между числом и его обратным числом на k, приращение увеличивается, если да.

C ++

// C ++ программа для подсчета чисел
// в заданном диапазоне, в котором, когда
// вычитаете число из его
// наоборот, разница есть продукт
// из к
#include <iostream>

using namespace std;

  

bool isRevDiffDivisible(int x, int k)

    // функция для проверки, если число

    // и наоборот

    // абсолютная разница делится на k

    int n = x;

    int m = 0;

    int flag;

    while (x > 0) 

    {   

        // перевернуть номер

        m = m * 10 + x % 10;

        x /= 10;

    }

      

    return (abs(n - m) % k == 0);

}

  

int countNumbers(int l, int r, int k)

{

    int count = 0; 

    for (int i = l; i <= r; i++)    

        if (isRevDiffDivisible(i, k))        

            ++count; 

    return count;

}

  
// Код драйвера

int main()

{

    int l = 20, r = 23, k = 6;

    cout << countNumbers(l, r, k) << endl; 

    return 0;

}

Джава

// Java-программа для подсчета
// числа в заданном диапазоне
// в котором при вычитании
// число с обратной стороны,
// разница есть произведение k

import java.io.*;

import java.math.*;

  

class GFG {

      

    static boolean isRevDiffDivisible(int x, int k)

    

        // функция для проверки, если число

        // и наоборот

        // абсолютная разница делится на k

        int n = x;

        int m = 0;

        int flag;

        while (x > 0

        

            // перевернуть номер

            m = m * 10 + x % 10;

            x /= 10;

        }

          

        return (Math.abs(n - m) % k == 0);

    }

      

    static int countNumbers(int l, int r, int k)

    {

        int count = 0

        for (int i = l; i <= r; i++) 

            if (isRevDiffDivisible(i, k))     

                ++count; 

        return count;

    }

      

    // Код драйвера

    public static void main(String args[])

    {

        int l = 35, r = 45, k = 5;

        System.out.println(countNumbers(l, r, k));

    }

}

  
// Этот код добавлен
// Никита Тивари.

python3

# Программа Python 3 для подсчета чисел
# в пределах заданного диапазона, в котором, когда вы
# вычесть число из обратного,
# разница есть произведение k

  

def isRevDiffDivisible(x, k) :

    # функция, чтобы проверить, если число

    # и обратное есть их

    # абсолютная разница делится на k

    n = x; m = 0

    while (x > 0) :

  

        # Обратный номер

        m = m * 10 + x % 10

        x = x // 10

          

    return (abs(n - m) % k == 0)

  

def countNumbers(l, r, k) :

    count = 0

    for i in range(l, r + 1) :

  

        if (isRevDiffDivisible(i, k)) :

            count = count + 1

      

    return count

      

      
# Код драйвера

l = 20; r = 23; k = 6

print(countNumbers(l, r, k))

  

  
# Этот код предоставлен Никитой Тивари.

C #

// C # программа для подсчета
// числа в заданном диапазоне
// в котором при вычитании
// число с обратной стороны,
// разница есть произведение k

using System;

  

class GFG {

      

    static bool isRevDiffDivisible(int x, int k)

    

        // функция для проверки, если число

        // и наоборот

        // абсолютная разница делится на k

        int n = x;

        int m = 0;

          

        // int flag;

        while (x > 0) 

        

            // перевернуть номер

            m = m * 10 + x % 10;

            x /= 10;

        }

          

        return (Math.Abs(n - m) % k == 0);

    }

      

    static int countNumbers(int l, int r, int k)

    {

        int count = 0; 

          

        for (int i = l; i <= r; i++) 

            if (isRevDiffDivisible(i, k)) 

                ++count; 

        return count;

    }

      

    // Код драйвера

    public static void Main()

    {

        int l = 35, r = 45, k = 5;

        Console.WriteLine(countNumbers(l, r, k));

    }

}

  
// Этот код добавлен
// от vt_m.

PHP

<?php
// PHP-программа для подсчета
// числа внутри заданного
// диапазон, в котором, когда вы
// вычитаем число из
// обратная, разница
// является произведением k

function isRevDiffDivisible($x, $k)

    // функция для проверки

    // номер и его

    // обратный есть их

    // абсолютная разница

    // делится на k

    $n = $x;

    $m = 0;

    $flag;

    while ($x > 0) 

    

        // перевернуть номер

        $m = $m * 10 + $x % 10;

        $x = (int)$x / 10;

    }

      

    return (abs($n - $m) %

                $k == 0);

}

  

function countNumbers($l, $r, $k)

{

    $count = 0; 

    for ($i = $l; $i <= $r; $i++) 

        if (isRevDiffDivisible($i, $k)) 

            ++$count

    return $count;

}

  
// Код драйвера

$l = 20; $r = 23; $k = 6;

echo countNumbers($l, $r, $k); 

  
// Этот код предоставлен mits.
?>


Выход:

2

Рекомендуемые посты:

Подсчет чисел, чье отличие от обратного является произведением k

0.00 (0%) 0 votes