Рубрики

Учитывая число N в десятичной основе, найдите количество его цифр в любой базе (база b)

Учитывая число n в базе 10, найдите количество цифр в его представлении b.
Ограничения: Все

Примеры :

Input : Number = 48 
        Base = 4
Output: 3
Explanation : (48)10 = (300)4

Input : Number = 1446
        Base = 7
Output: 4
Explanation : (446)10 = (4134)7

Простой подход: преобразовать десятичное число в заданную базу r и затем посчитать количество цифр.

Эффективный подход : он основан на взаимосвязи между базой числа и количеством цифр этого числа.
Обычно: пусть n будет положительным целым числом. База представление имеет цифры, если , в случае если или Следовательно, количество цифр в базовом b представлении n равно

В приведенном выше уравнении было использовано логарифмическое свойство изменения базы. Таким образом, мы вычисляем логарифм числа в той базе, которую мы хотим вычислить количеством цифр. И возьмите его потолок, а затем добавьте 1.

Эта идея может быть далее использована для определения количества цифр данного числа n в базе b в базе r. Все, что нужно сделать, это преобразовать число в основание 10, а затем применить приведенную выше формулу поиска цифр. Было бы легче рассчитать лог любой базы, когда число в базе 10.

C ++

// C ++ программа для поиска количества цифр
// в базе б.
#include <iostream>
#include <math.h> 

using namespace std;

  
// функция для печати номера
// цифры

void findNumberOfDigits(long n, int base)

{

    // Расчет журнала с использованием базы

    // меняем свойство и затем

    // взять слово и потом

    // добавляем 1.

    int dig = (int)(floor( log(n) / 

                         log(base)) + 1); 

      

    // вывод на печать

    cout << "The Number of digits of "

         << "Number " << n << " in base "

         << base << " is " << dig;

}

  
// Метод драйвера

int main()

{

    // принимая входные данные

    long n = 1446;

    int base = 7;

      

    // вызов метода

    findNumberOfDigits(n, base);

    return 0;

}

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

Джава

// Java-программа для поиска номера
// цифр в базе b.

class GFG {

      

    // функция для печати количества цифр

    static void findNumberOfDigits(long n, int base)

    {

          

        // Расчет журнала с использованием смены базы

        // свойство и затем взятие его

        // пол и затем добавление 1.

        int dig = (int)(Math.floor(

                        Math.log(n) / Math.log(base))

                        + 1); 

          

          

        // вывод на печать

        System.out.println("The Number of digits of Number "

                            + n + " in base " + base 

                            + " is " + dig);

    }

  

    // Метод драйвера

    public static void main(String[] args)

    {

        // принимая входные данные

        long n = 1446;

        int base = 7;

          

        // вызов метода

        findNumberOfDigits(n, base);

    }

}

python3

# Python3 программа для поиска количества цифр
# в базе б.

  

import math

  
# функция для печати номера
# цифры

def findNumberOfDigits(n, base):

      

    # Расчет журнала с использованием базы

    # изменение свойства и затем

    # взять это слово, а затем

    # добавление 1.

    dig = (math.floor(math.log(n) /

                 math.log(base)) + 1)

      

    # вывод на печать

    print ("The Number of digits of"

      " Number {} in base {} is {}"

            . format(n, base, dig))

  
# Метод драйвера

  
# принимать входные данные

n = 1446

base = 7

  
# вызов метода
findNumberOfDigits(n, base)

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

C #

// C # программа для поиска количества цифр
// в базе б.

using System;

  

class GFG {

      

    // функция для печати номера

    // цифры

    static void findNumberOfDigits(long n,

                                    int b)

    {

        // Расчет журнала с использованием базы

        // меняем свойство и затем

        // взять слово и потом

        // добавляем 1.

        int dig = (int)(Math.Floor(

          Math.Log(n) / Math.Log(b)) + 1); 

          

        // вывод на печать

        Console.Write("The Number of digits"

           + " of Number " + n + " in base "

                        + b + " is " + dig);

    }

  

    // Метод драйвера

    public static void Main()

    {

        // принимая входные данные

        long n = 1446;

        int b = 7;

          

        // вызов метода

        findNumberOfDigits(n, b);

    }

}

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

PHP

<?php
// PHP программа для поиска номера
// цифр в базе b.

      
// функция для печати
// количество цифр

function findNumberOfDigits($n, $b)

{

    // Расчет журнала с использованием базы

    // меняем свойство и затем

    // взять слово и потом

    // добавляем 1.

    $dig = (int)(floor(log($n) / 

                       log($b)) + 1); 

      

    // вывод на печать

    echo ("The Number of digits".

               " of Number ". $n.

                  " in base ".$b.

                    " is ".$dig);

}

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

$n = 1446;

$b = 7;

      
// вызов метода

findNumberOfDigits($n, $b);

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


Выход :

The Number of digits of Number 1446 in base 7 is 4

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

Учитывая число N в десятичной основе, найдите количество его цифр в любой базе (база b)

0.00 (0%) 0 votes