Рубрики

Сумма цифр, написанных на разных базах от 2 до n-1

Дано число n, найти сумму цифр n, когда они представлены в разных базах от 2 до n-1.

Примеры:

Input : 5
Output : 2 3 2
Representation of 5 is 101, 12, 11 in bases 2 , 3 , 4 .

Input : 7
Output : 3 3 4 3 2
  1. As the given question wants the sum of digits in different bases, first we have to calculate the given number of different bases and add each digit to the number of different bases.
  2. So, to calculate each number’s representation we will take the mod of given number by the base in which we want to represent that number.
  3. Then, we have to add all those mod values as the mod values obtained will represent that number in that base.
  4. Finally, the sum of those mod values gives the sum of digits of that number.

Ниже приведены реализации этого подхода.

C ++

// Программа CPP для нахождения суммы цифр
// n в разных базах от 2 до n-1.
#include <bits/stdc++.h>

using namespace std;

  
// функция для вычисления суммы
// цифра для заданной базы

int solve(int n, int base)

{

    // сумма цифр

    int result = 0 ;

      

    // Вычисление числа (n) по

    // берём мод с базы и добавляем

    // остаток результата и

    // параллельно уменьшаем значение num.

    while (n > 0)

    {

        int remainder = n % base ;

        result = result + remainder ; 

        n = n / base;

    }

      

    // возвращаем результат

    return result ;

}

  

void printSumsOfDigits(int n)

{

    // вызов функции для нескольких баз

    for (int base = 2 ; base < n ; ++base)    

        cout << solve(n, base) <<" "

}

  
// Драйвер программы

int main()

{

    int n = 8;

    printSumsOfDigits(n);

    return 0;

}

Джава

// Java-программа для поиска суммы цифр
// n в разных базах от 2 до n-1.

class GFG

{
// функция для вычисления суммы
// цифра для заданной базы

static int solve(int n, int base)

{

    // сумма цифр

    int result = 0 ;

      

    // Вычисление числа (n) по

    // берём мод с базы и добавляем

    // остаток результата и

    // параллельно уменьшаем значение num.

    while (n > 0)

    {

        int remainder = n % base ;

        result = result + remainder ; 

        n = n / base;

    }

      

    // возвращаем результат

    return result ;

}

  

static void printSumsOfDigits(int n)

{

    // вызов функции для нескольких баз

    for (int base = 2 ; base < n ; ++base) 

        System.out.print(solve(n, base)+" "); 

}

  
// Код драйвера

public static void main(String[] args)

{

    int n = 8;

    printSumsOfDigits(n);

}
}
// Этот код предоставлен Smitha

python3

# Программа Python для нахождения суммы цифр
# n в разных базах от 2 до n-1.

   
# def для расчета суммы
# цифра для данной базы

def solve(n, base) :

       

    # Сумма цифр

    result = 0 

       

    # Расчет числа (n)

    # взять мод с базой и добавить

    # остаток от результата и

    # параллельно уменьшая значение num.

    while (n > 0) :

      

        remainder = n % base 

        result = result + remainder  

        n = int(n / base)

       

    # возврат результата

    return result 

   

def printSumsOfDigits(n) :

       

    # def призывая к

    # несколько баз

    for base in range(2, n) :

        print (solve(n, base), end=" ")

  
# Код драйвера

n = 8

printSumsOfDigits(n)

   
# Этот код предоставлен Манишем Шоу
# (manishshaw1)

C #

// Java-программа для нахождения суммы цифр
// n в разных base1s от 2 до n-1.

using System;

  

class GFG

{
// функция для вычисления суммы
// цифра для данного base1

static int solve(int n, int base1)

{

    // сумма цифр

    int result = 0 ;

      

    // Вычисление числа (n) по

    // берём мод с base1 и добавляем

    // остаток результата и

    // параллельно уменьшаем значение num.

    while (n > 0)

    {

        int remainder = n % base1 ;

        result = result + remainder ; 

        n = n / base1;

    }

      

    // возвращаем результат

    return result ;

}

  

static void printSumsOfDigits(int n)

{

    // вызов функции для нескольких base1

    for (int base1 = 2 ; base1 < n ; ++base1) 

        Console.Write(solve(n, base1)+" "); 

}

  
// Код драйвера

public static void Main()

{

    int n = 8;

    printSumsOfDigits(n);

}
}
// Этот код предоставлен Smitha

PHP

<?php
// PHP программа для поиска суммы цифр
// n в разных базах от 2 до n-1.

  
// функция для вычисления суммы
// цифра для заданной базы

function solve($n, $base)

{

      

    // сумма цифр

    $result = 0 ;

      

    // Вычисление числа (n) по

    // берём мод с базы и добавляем

    // остаток результата и

    // параллельно уменьшаем значение num.

    while ($n > 0)

    {

        $remainder = $n % $base ;

        $result = $result + $remainder

        $n = $n / $base;

    }

      

    // возвращаем результат

    return $result ;

}

  

function printSumsOfDigits($n)

{

      

    // функция, вызывающая

    // несколько баз

    for ($base = 2 ; $base < $n ; ++$base)

    {

        echo(solve($n, $base));

        echo(" ");

    }

}

  
// Код драйвера

$n = 8;

printSumsOfDigits($n);

  
// Этот код предоставлен Ajit.
?>


Выход :

1 4 2 4 3 2 

Рекомендуемые посты:

Сумма цифр, написанных на разных базах от 2 до n-1

0.00 (0%) 0 votes