Cuenta de N dígitos Números cuya suma de cada K dígitos consecutivos es igual | conjunto 2

Dados dos números enteros N y K , la tarea es encontrar el conteo de todos los números posibles de N dígitos que tienen la suma de cada K dígitos consecutivos del número que son iguales.
Ejemplos: 
 

Entrada: N = 2, K=1 
Salida:
Explicación: 
Todos los números de dos dígitos que cumplen las condiciones requeridas son {11, 22, 33, 44, 55, 66, 77, 88, 99}
Entrada: N = 3, K = 2 
Salida: 90 
 

Enfoque ingenuo y de ventana deslizante: consulte Conteo de N dígitos Números cuya suma de cada K dígitos consecutivos es igual para el enfoque más simple y el enfoque basado en la técnica de ventana deslizante .
Enfoque logarítmico: 
Para que la suma de K -elementos consecutivos sea siempre igual, el número entero se rige por sus primeros K dígitos. 
 

  • El i -ésimo dígito será igual al (ik) -ésimo dígito para que el número satisfaga la condición de que la suma de cada K dígito consecutivo sea la misma.

Ilustración: 
N = 5 y K = 2 
Si los primeros dos dígitos son 1 y 2, entonces el número tiene que ser 12121 para que la suma de cada 2 dígitos consecutivos sea 3. 
Observe que los primeros 2 dígitos, es decir, los primeros K dígitos se repiten . . 
 

Por lo tanto, para resolver el problema, la tarea ahora es encontrar el conteo total de números de K dígitos que es igual a 10 K – 10 (K-1) . Por lo tanto, imprima el valor calculado como la respuesta.
A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ Program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to count the number of
// N-digit numbers such that sum of
// every K consecutive digits are equal
void count(int n, int k)
{
    long count = (long)(pow(10, k) - pow(10, k - 1));
 
    // Print the answer
    cout << (count);
}
 
// Driver Code
int main()
{
    int n = 2, k = 1;
    count(n, k);
}
 
// This code is contributed by Ritik Bansal

Java

// Java Program to implement
// the above approach
class GFG {
 
    // Function to count the number of
    // N-digit numbers such that sum of
    // every K consecutive digits are equal
    public static void count(int n, int k)
    {
        long count
            = (long)(Math.pow(10, k)
                     - Math.pow(10, k - 1));
 
        // Print the answer
        System.out.print(count);
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 2, k = 1;
        count(n, k);
    }
}

Python3

# Python3 program to implement
# the above approach
 
# Function to count the number of
# N-digit numbers such that sum of
# every K consecutive digits are equal
def count(n, k):
     
    count = (pow(10, k) - pow(10, k - 1));
 
    # Print the answer
    print(count);
     
# Driver Code
if __name__ == '__main__':
     
    n = 2;
    k = 1;
     
    count(n, k);
     
# This code is contributed by 29AjayKumar

C#

// C# Program to implement
// the above approach
using System;
class GFG{
   
  // Function to count the number of
  // N-digit numbers such that sum of
  // every K consecutive digits are equal
  public static void count(int n, int k)
  {
    long count = (long)(Math.Pow(10, k) -
                        Math.Pow(10, k - 1));
 
    // Print the answer
    Console.Write(count);
  }
 
  // Driver Code
  public static void Main(String[] args)
  {
    int n = 2, k = 1;
    count(n, k);
  }
}
 
// This code is contributed by Rohit_ranjan

Javascript

<script>
// Javascript Program to implement
// the above approach
 
// Function to count the number of
// N-digit numbers such that sum of
// every K consecutive digits are equal
function count(n, k)
{
    let count = Math.pow(10, k) - Math.pow(10, k - 1);
 
    // Print the answer
    document.write(count);
}
 
// Driver Code
let n = 2, k = 1;
count(n, k);
 
// This code is contributed by souravmahato348.
</script>
Producción: 

9

 

Complejidad temporal: O(log K) 
Espacio auxiliar: O(1)
 

Publicación traducida automáticamente

Artículo escrito por jrishabh99 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 *