Thursday, July 4, 2024
HomeData ModellingData Structure & AlgorithmCount numbers with unit digit k in given range

Count numbers with unit digit k in given range

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!

Nango Kalahttps://www.kala.co.za
Experienced Support Engineer with a demonstrated history of working in the information technology and services industry. Skilled in Microsoft Excel, Customer Service, Microsoft Word, Technical Support, and Microsoft Office. Strong information technology professional with a Microsoft Certificate Solutions Expert (Privet Cloud) focused in Information Technology from Broadband Collage Of Technology.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments