给定两个数字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++ program to Count the numbers
// within a given range in which when
// you subtract a number from its
// reverse, the difference is a product
// of k
#include
using namespace std;
bool isRevDiffDivisible(int x, int k)
{
// function to check if the number
// and its reverse have their
// absolute difference divisible by k
int n = x;
int m = 0;
int flag;
while (x > 0)
{
// reverse the number
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;
}
// Driver code
int main()
{
int l = 20, r = 23, k = 6;
cout << countNumbers(l, r, k) << endl;
return 0;
}
Java
// Java program to Count the
// numbers within a given range
// in which when you subtract
// a number from its reverse,
// the difference is a product of k
import java.io.*;
import java.math.*;
class GFG {
static boolean isRevDiffDivisible(int x, int k)
{
// function to check if the number
// and its reverse have their
// absolute difference divisible by k
int n = x;
int m = 0;
int flag;
while (x > 0)
{
// reverse the number
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;
}
// Driver code
public static void main(String args[])
{
int l = 35, r = 45, k = 5;
System.out.println(countNumbers(l, r, k));
}
}
// This code is contributed
// by Nikita Tiwari.
Python3
# Python 3 program to Count the numbers
# within a given range in which when you
# subtract a number from its reverse,
# the difference is a product of k
def isRevDiffDivisible(x, k) :
# function to check if the number
# and its reverse have their
# absolute difference divisible by k
n = x; m = 0
while (x > 0) :
# Reverse the number
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
# Driver code
l = 20; r = 23; k = 6
print(countNumbers(l, r, k))
# This code is contributed by Nikita Tiwari.
C#
// C# program to Count the
// numbers within a given range
// in which when you subtract
// a number from its reverse,
// the difference is a product of k
using System;
class GFG {
static bool isRevDiffDivisible(int x, int k)
{
// function to check if the number
// and its reverse have their
// absolute difference divisible by k
int n = x;
int m = 0;
// int flag;
while (x > 0)
{
// reverse the number
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;
}
// Driver code
public static void Main()
{
int l = 35, r = 45, k = 5;
Console.WriteLine(countNumbers(l, r, k));
}
}
// This code is contributed
// by vt_m.
PHP
0)
{
// reverse the number
$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;
}
// Driver code
$l = 20; $r = 23; $k = 6;
echo countNumbers($l, $r, $k);
// This code is contributed by mits.
?>
Javascript
输出:
2