Here given a range from low to high and given a number k.You have to find out the number of count which a number has same digit as k
Examples:
Input: low = 2, high = 35, k = 2 Output: 4 Numbers are 2, 12, 22, 32 Input: low = 3, high = 30, k = 3 Output: 3 Numbers are 3, 13, 23
A naive approach is to traverse through all numbers in given range and check last digit of every number and increment result if last digit is equal to k.
C++
// Simple CPP program to count numbers with // last digit as k in given range. #include <bits/stdc++.h> using namespace std;
// Returns count of numbers with k as last // digit. int countLastDigitK( int low, int high, int k)
{ int count = 0;
for ( int i = low; i <= high; i++)
if (i % 10 == k)
count++;
return count;
} // Driver Program int main()
{ int low = 3, high = 35, k = 3;
cout << countLastDigitK(low, high, k);
return 0;
} |
Java
// Simple Java program to count numbers with // last digit as k in given range. import java.util.*;
import java.lang.*;
public class GfG
{ // Returns count of numbers with
// k as last digit.
public static int countLastDigitK( int low,
int high, int k)
{
int count = 0 ;
for ( int i = low; i <= high; i++)
if (i % 10 == k)
count++;
return count;
}
// driver function
public static void main(String args[])
{
int low = 3 , high = 35 , k = 3 ;
System.out.println(countLastDigitK(low, high, k));
}
} // This code is contributed by Sagar Shukla |
Python3
# Simple python program to count numbers with # last digit as k in given range. # Returns count of numbers with k as last # digit. def countLastDigitK(low, high, k):
count = 0
for i in range (low, high + 1 ):
if (i % 10 = = k):
count + = 1 return count
# Driver Program low = 3
high = 35
k = 3
print (countLastDigitK(low, high, k))
# This code is contributed by # Smitha Dinesh Semwal |
C#
// Simple C# program to count numbers with // last digit as k in given range. using System;
public class GfG
{ // Returns count of numbers with
// k as last digit.
public static int countLastDigitK( int low,
int high, int k)
{
int count = 0;
for ( int i = low; i <= high; i++)
if (i % 10 == k)
count++;
return count;
}
// Driver function
public static void Main()
{
int low = 3, high = 35, k = 3;
Console.WriteLine(countLastDigitK(low, high, k));
}
} // This code is contributed by vt_m |
PHP
<?php // Simple PHP program to count numbers with // last digit as k in given range. // Returns count of numbers with // k as last digit. function countLastDigitK( $low , $high , $k )
{ $count = 0;
for ( $i = $low ; $i <= $high ; $i ++)
if ( $i % 10 == $k )
$count ++;
return $count ;
} // Driver Code
$low = 3;
$high = 35;
$k = 3;
echo countLastDigitK( $low , $high , $k );
// This code is contributed by ajit ?> |
Javascript
<script> // java script PHP program to count numbers with // last digit as k in given range. // Returns count of numbers with // k as last digit. function countLastDigitK(low, high, k)
{ let count = 0;
for (let i = low; i <= high; i++)
if (i % 10 == k)
count++;
return count;
} // Driver Code
let low = 3;
let high = 35;
let k = 3;
document.write( countLastDigitK(low, high, k));
// This code is contributed // by sravan kumar </script> |
Output:
4
Time Complexity: O(high – low)
Auxiliary Space: O(1)
An efficient solution is based on the fact that every digit appears once as the last digit in every 10 consecutive numbers.
C++
// Efficient CPP program to count numbers // with last digit as k in given range. #include <bits/stdc++.h> using namespace std;
// Returns count of numbers with k as last // digit. int countLastDigitK( long long low,
long long high, long long K)
{ long long mlow = 10 * ceil (low/10.0);
long long mhigh = 10 * floor (high/10.0);
int count = (mhigh - mlow)/10;
if (high % 10 >= K)
count++;
if (low % 10 <=K && (low%10))
count++;
return count;
} // Driver Code int main()
{ int low = 3, high = 35, k = 3;
cout << countLastDigitK(low, high, k);
return 0;
} |
Java
// Efficient Java program to count numbers // with last digit as k in given range. import java.util.*;
import java.lang.*;
public class GfG
{ // Returns count of numbers with
// k as last digit.
public static int counLastDigitK( int low,
int high, int k)
{
int mlow = 10 * ( int )
Math.ceil(low/ 10.0 );
int mhigh = 10 * ( int )
Math.floor(high/ 10.0 );
int count = (mhigh - mlow)/ 10 ;
if (high % 10 >= k)
count++;
if (low % 10 <= k && (low% 10 ) > 0 )
count++;
return count;
}
// driver function
public static void main(String argc[])
{
int low = 3 , high = 35 , k = 3 ;
System.out.println(counLastDigitK(low, high, k));
}
} // This code is contributed by Sagar Shukla |
Python3
import math
# Efficient python program to count numbers # with last digit as k in given range. # Returns count of numbers with k as last # digit. def counLastDigitK(low, high, k):
mlow = 10 * math.ceil(low / 10.0 )
mhigh = 10 * int (high / 10.0 )
count = (mhigh - mlow) / 10
if (high % 10 > = k):
count + = 1
if (low % 10 < = k and \
(low % 10 ) > 0 ):
count + = 1
return int (count)
# Driver Code low = 3
high = 35
k = 3
print (counLastDigitK(low, high, k))
# This code is contributed by # Smitha Dinesh Semwal |
C#
// Efficient Java program to count numbers // with last digit as k in given range. using System;
public class GfG
{ // Returns count of numbers with
// k as last digit.
public static int counLastDigitK( int low,
int high, int k)
{
int mlow = 10 * Convert.ToInt32(
Math.Ceiling(low/10.0));
int mhigh = 10 * Convert.ToInt32(
Math.Floor(high/10.0));
int count = (mhigh - mlow) / 10;
if (high % 10 >= k)
count++;
if (low % 10 <= k && (low%10) > 0)
count++;
return count;
}
// Driver function
public static void Main()
{
int low = 3, high = 35, k = 3;
Console.WriteLine(
counLastDigitK(low, high, k));
}
} // This code is contributed by vt_m |
Javascript
<script> // Efficient Javascript program to count numbers
// with last digit as k in given range.
// Returns count of numbers with
// k as last digit.
function counLastDigitK(low, high, k)
{
let mlow = 10 * (Math.ceil(low/10.0));
let mhigh = 10 * (Math.floor(high/10.0));
let count = (mhigh - mlow) / 10;
if (high % 10 >= k)
count++;
if (low % 10 <= k && (low%10) > 0)
count++;
return count;
}
let low = 3, high = 35, k = 3;
document.write(counLastDigitK(low, high, k));
</script> |
Output
4
Time Complexity : O(1)
Auxiliary Space: O(1)