Dado un número N en base decimal, encuentra la suma de los dígitos en cualquier base B

Dado un número N en base decimal, la tarea es encontrar la suma de los dígitos del número en cualquier base  B.
Ejemplos: 
 

Entrada: N = 100, B = 8 
Salida:
Explicación: 
(100) 8 = 144 
Sum(144) = 1 + 4 + 4 = 9
Entrada: N = 50, B = 2 
Salida:
Explicación: 
(50) 2 = 110010 
Suma(110010) = 1 + 1 + 0 + 0 + 1 + 0 = 3 
 

Enfoque: encuentre el dígito de la unidad realizando la operación de módulo en el número N por la base B y actualizando el número nuevamente por N = N / B y actualice la suma agregando el dígito de la unidad en cada paso. 
A continuación se muestra la implementación del enfoque anterior. 
 

C++

// C++ Implementation to Compute Sum of
// Digits of Number N in Base B
 
#include <iostream>
using namespace std;
 
// Function to compute sum of
// Digits of Number N in base B
int sumOfDigit(int n, int b)
{
     
    // Initialize sum with 0
    int unitDigit, sum = 0;
    while (n > 0) {
         
        // Compute unit digit of the number
        unitDigit = n % b;
 
        // Add unit digit in sum
        sum += unitDigit;
 
        // Update value of Number
        n = n / b;
    }
    return sum;
}
 
// Driver function
int main()
{
    int n = 50;
    int b = 2;
    cout << sumOfDigit(n, b);
    return 0;
}

Java

// Java Implementation to Compute Sum of
// Digits of Number N in Base B
class GFG
{
 
// Function to compute sum of
// Digits of Number N in base B
static int sumOfDigit(int n, int b)
{
     
    // Initialize sum with 0
    int unitDigit, sum = 0;
    while (n > 0)
    {
         
        // Compute unit digit of the number
        unitDigit = n % b;
 
        // Add unit digit in sum
        sum += unitDigit;
 
        // Update value of Number
        n = n / b;
    }
    return sum;
}
 
// Driver code
public static void main(String[] args)
{
    int n = 50;
    int b = 2;
    System.out.print(sumOfDigit(n, b));
}
}
 
// This code is contributed by PrinciRaj1992

Python3

# Python3 Implementation to Compute Sum of
# Digits of Number N in Base B
 
# Function to compute sum of
# Digits of Number N in base B
def sumOfDigit(n, b):
 
    # Initialize sum with 0
    unitDigit = 0
    sum = 0
    while (n > 0):
         
        # Compute unit digit of the number
        unitDigit = n % b
 
        # Add unit digit in sum
        sum += unitDigit
 
        # Update value of Number
        n = n // b
 
    return sum
 
# Driver code
n = 50
b = 2
print(sumOfDigit(n, b))
 
# This code is contributed by ApurvaRaj

C#

// C# Implementation to Compute Sum of
// Digits of Number N in Base B
using System;
 
class GFG
{
 
// Function to compute sum of
// Digits of Number N in base B
static int sumOfDigit(int n, int b)
{
     
    // Initialize sum with 0
    int unitDigit, sum = 0;
    while (n > 0)
    {
         
        // Compute unit digit of the number
        unitDigit = n % b;
 
        // Add unit digit in sum
        sum += unitDigit;
 
        // Update value of Number
        n = n / b;
    }
    return sum;
}
 
// Driver code
public static void Main(String[] args)
{
    int n = 50;
    int b = 2;
    Console.Write(sumOfDigit(n, b));
}
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
 
// Javascript Implementation to Compute Sum of
// Digits of Number N in Base B
 
// Function to compute sum of
// Digits of Number N in base B
function sumOfDigit(n, b)
{
     
    // Initialize sum with 0
    var unitDigit, sum = 0;
    while (n > 0)
    {
         
        // Compute unit digit of the number
        unitDigit = n % b;
 
        // Add unit digit in sum
        sum += unitDigit;
 
        // Update value of Number
        n = parseInt(n / b);
    }
    return sum;
}
 
// Driver function
var n = 50;
var b = 2;
document.write(sumOfDigit(n, b));
 
// This code is contributed by rutvik_56.
</script>
Producción: 

3

 

Complejidad de tiempo: O(N), N = número de dígitos

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

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