Contar números con dígito unitario k en un rango dado

Aquí dado un rango de menor a mayor y dado un número k. Tienes que encontrar el número de conteo en el que un número tiene el mismo dígito que k
Ejemplos: 

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
 

Un enfoque ingenuo es atravesar todos los números en un rango dado y verificar el último dígito de cada número e incrementar el resultado si el último dígito es igual a 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>

Producción:

4

Complejidad de tiempo: O (alta – baja)

Espacio Auxiliar: O(1)
 
Una solución eficiente se basa en que cada dígito aparece una vez como el último dígito de cada 10 números consecutivos. 
 

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>
Producción

4

Complejidad de tiempo : O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por shrikanth13 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *