给定正数x,任务是查找自然对数(ln)并借助扩展将其记录到该数的基数10(对数10 )。
例子:
Input: x = 5
Output: ln 5.000 = 1.609
log10 5.000 = 0.699
Input: x = 10
Output: ln 10.000 = 2.303
log10 10.000 = 1.000
方法:
- x(ln x)的自然对数的展开式为:
- 因此,本系列可以总结为:
- 因此,可以使一个函数来评估1≤的序列的第n个项。 x≤ ñ
- 现在要计算log 10 x ,可以使用以下公式:
下面是上述方法的实现:
C++
// CPP code to Find the ln x and
// log10 x with the help of expansion
#include
#include
#include
using namespace std;
// Function to calculate ln x using expansion
double calculateLnx(double n)
{
double num, mul, cal, sum = 0;
num = (n - 1) / (n + 1);
// terminating value of the loop
// can be increased to improve the precision
for (int i = 1; i <= 1000; i++) {
mul = (2 * i) - 1;
cal = pow(num, mul);
cal = cal / mul;
sum = sum + cal;
}
sum = 2 * sum;
return sum;
}
// Function to calculate log10 x
double calculateLogx(double lnx)
{
return (lnx / 2.303);
}
// Driver Code
int main()
{
double lnx, logx, n = 5;
lnx = calculateLnx(n);
logx = calculateLogx(lnx);
// setprecision(3) is used to display
// the output up to 3 decimal places
cout << fixed << setprecision(3)
<< "ln " << n << " = "
<< lnx << endl;
cout << fixed << setprecision(3)
<< "log10 " << n << " = "
<< logx << endl;
}
Java
// Java code to Find the ln x and
// log10 x with the help of expansion
import java.io.*;
class GFG
{
// Function to calculate ln x using expansion
static double calculateLnx(double n)
{
double num, mul, cal, sum = 0;
num = (n - 1) / (n + 1);
// terminating value of the loop
// can be increased to improve the precision
for (int i = 1; i <= 1000; i++)
{
mul = (2 * i) - 1;
cal = Math.pow(num, mul);
cal = cal / mul;
sum = sum + cal;
}
sum = 2 * sum;
return sum;
}
// Function to calculate log10 x
static double calculateLogx(double lnx)
{
return (lnx / 2.303);
}
// Driver Code
public static void main (String[] args)
{
double lnx, logx, n = 5;
lnx = calculateLnx(n);
logx = calculateLogx(lnx);
// setprecision(3) is used to display
// the output up to 3 decimal places
System.out.println ("ln " + n + " = " + lnx );
System.out.println ("log10 " + n + " = "+ logx );
}
}
// This code is contributed by ajit
Python3
# Python 3 code to Find the ln x and
# log10 x with the help of expansion
# Function to calculate ln x using expansion
from math import pow
def calculateLnx(n):
sum = 0
num = (n - 1) / (n + 1)
# terminating value of the loop
# can be increased to improve the precision
for i in range(1, 1001, 1):
mul = (2 * i) - 1
cal = pow(num, mul)
cal = cal / mul
sum = sum + cal
sum = 2 * sum
return sum
# Function to calculate log10 x
def calculateLogx(lnx):
return (lnx / 2.303)
# Driver Code
if __name__ == '__main__':
n = 5
lnx = calculateLnx(n)
logx = calculateLogx(lnx)
# setprecision(3) is used to display
# the output up to 3 decimal places
print("ln", "{0:.3f}".format(n),
"=", "{0:.3f}".format(lnx))
print("log10", "{0:.3f}".format(n),
"=", "{0:.3f}".format(logx))
# This code is contributed by
# Surendra_Gangwar
C#
// C# code to Find the ln x and
// log10 x with the help of expansion
using System;
class GFG
{
// Function to calculate ln x using expansion
static double calculateLnx(double n)
{
double num, mul, cal, sum = 0;
num = (n - 1) / (n + 1);
// terminating value of the loop
// can be increased to improve the precision
for (int i = 1; i <= 1000; i++)
{
mul = (2 * i) - 1;
cal = Math.Pow(num, mul);
cal = cal / mul;
sum = sum + cal;
}
sum = 2 * sum;
return sum;
}
// Function to calculate log10 x
static double calculateLogx(double lnx)
{
return (lnx / 2.303);
}
// Driver Code
public static void Main (String[] args)
{
double lnx, logx, n = 5;
lnx = calculateLnx(n);
logx = calculateLogx(lnx);
// setprecision(3) is used to display
// the output up to 3 decimal places
Console.WriteLine("ln " + n + " = " + lnx );
Console.WriteLine("log10 " + n + " = "+ logx );
}
}
// This code is contributed by Princi Singh
输出:
ln 5.000 = 1.609
log10 5.000 = 0.699