# Count numbers with unit digit k in given range

• Difficulty Level : Medium
• Last Updated : 30 Apr, 2021

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 ``using` `namespace` `std;` `// Returns count of numbers with k as last``// digit.``int` `counLastDigitK(``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 << counLastDigitK(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` `counLastDigitK(``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(counLastDigitK(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` `counLastDigitK(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``(counLastDigitK(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` `counLastDigitK(``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(counLastDigitK(low, high, k));``    ``}``}` `// This code is contributed by vt_m`

## PHP

 ``

## Javascript

 ``

Output:

`4`

Time Complexity: O(high – low)

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 ``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

 ``
Output
`4`

Time Complexity : O(1)

My Personal Notes arrow_drop_up