本文概述
给定以10为底的数字n, 请找到以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为正整数。底数
代表
具有
如果数字
, 如果是这样的话
or
因此, 以n为底的b表示形式的位数是
在上面的方程中, 使用了基本变化对数性质。因此, 我们计算要计算位数的那个底数的对数。取其底值, 然后加1。
该想法可以进一步用于在基数r中找到基数b的给定数n的位数。所有要做的就是转换以10为底的数字, 然后应用上面的查找数字公式。当数字以10为底时, 计算任何底数的对数会更容易。
C ++
// C++ program to Find Number of digits
// in base b.
#include <iostream>
#include <math.h>
using namespace std;
// function to print number of
// digits
void findNumberOfDigits( long n, int base)
{
// Calculating log using base
// changing property and then
// taking it floor and then
// adding 1.
int dig = ( int )( floor ( log (n) /
log (base)) + 1);
// printing output
cout << "The Number of digits of "
<< "Number " << n << " in base "
<< base << " is " << dig;
}
// Driver method
int main()
{
// taking inputs
long n = 1446;
int base = 7;
// calling the method
findNumberOfDigits(n, base);
return 0;
}
// This code is contributed by Manish Shaw
// (manishshaw1)
Java
// Java program to Find Number
// of digits in base b.
class GFG {
// function to print number of digits
static void findNumberOfDigits( long n, int base)
{
// Calculating log using base changing
// property and then taking it
// floor and then adding 1.
int dig = ( int )(Math.floor(
Math.log(n) / Math.log(base))
+ 1 );
// printing output
System.out.println( "The Number of digits of Number "
+ n + " in base " + base
+ " is " + dig);
}
// Driver method
public static void main(String[] args)
{
// taking inputs
long n = 1446 ;
int base = 7 ;
// calling the method
findNumberOfDigits(n, base);
}
}
Python3
# Python3 program to Find Number of digits
# in base b.
import math
# function to print number of
# digits
def findNumberOfDigits(n, base):
# Calculating log using base
# changing property and then
# taking it floor and then
# adding 1.
dig = (math.floor(math.log(n) /
math.log(base)) + 1 )
# printing output
print ( "The Number of digits of"
" Number {} in base {} is {}"
. format (n, base, dig))
# Driver method
# taking inputs
n = 1446
base = 7
# calling the method
findNumberOfDigits(n, base)
# This code is contributed by
# Manish Shaw (manishshaw1)
C#
// C# program to Find Number of digits
// in base b.
using System;
class GFG {
// function to print number of
// digits
static void findNumberOfDigits( long n, int b)
{
// Calculating log using base
// changing property and then
// taking it floor and then
// adding 1.
int dig = ( int )(Math.Floor(
Math.Log(n) / Math.Log(b)) + 1);
// printing output
Console.Write( "The Number of digits"
+ " of Number " + n + " in base "
+ b + " is " + dig);
}
// Driver method
public static void Main()
{
// taking inputs
long n = 1446;
int b = 7;
// calling the method
findNumberOfDigits(n, b);
}
}
// This code is contributed by Manish Shaw
// (manishshaw1)
的PHP
<?php
// PHP program to Find Number
// of digits in base b.
// function to print
// number of digits
function findNumberOfDigits( $n , $b )
{
// Calculating log using base
// changing property and then
// taking it floor and then
// adding 1.
$dig = (int)( floor (log( $n ) /
log( $b )) + 1);
// printing output
echo ( "The Number of digits" .
" of Number " . $n .
" in base " . $b .
" is " . $dig );
}
// Driver Code
$n = 1446;
$b = 7;
// calling the method
findNumberOfDigits( $n , $b );
// This code is contributed by
// Manish Shaw (manishshaw1)
?>
输出:
The Number of digits of Number 1446 in base 7 is 4