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)
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!