The problem of accurately calculating very large values is well known. For example, calculating national debt has put a heavy burden on many computers.
The problem is to calculate R ^ n, where R is a real number and 0.0<R<99.999 and n is an integer that satisfies 0<n<= 25.
The input consists of a set of R and n value pairs. The R value is in the 1st to 6th columns, and the n value is in the 8th and 9th columns.
The output consists of lines representing the exact value of R ^ n given from each input line. The leading 0 should not be output. Don't display the meaningless 0 that follows the value. If the result is an integer, the decimal point must not be displayed.
Please tell me the answer program for the questions in ↑. Thank you.
program exponentiation (input, output);
var R, x: real;
n, i: integer;
readln (R, n);
x: = 1;
if (0<R) and (R<99.999) then
if (0<n) and (n<= 25) then begin
for i: = 1 to n do
x: = x * R;
This was incorrect.
Answer # 1
I think R is a rational number, not an irrational number
If R is required to be a real and accurate decimal notation
What happens if π (0.0<R<99.999) is entered → Infinite loop
R is probably a rational number
It is not a circulating decimal (this is also an infinite loop if 1/3 is entered)
And it has 5 significant digits
log10 (99999 ^ 25) = 124.9998914258367
What you do ismultiply up to 125 digitsand calculate the decimal point position
An array of size 125 that stores numbers from 0 to 9 and a variable that holds the decimal point position
To store R value and decimal point position
To store the calculation result and its decimal point position
Prepare two at a time
A function that calculates the sum of numbers represented by two arrays and
A function that uses the function to calculate the product of the numbers represented by two arrays and the decimal point position simultaneously
If you write a function that outputs the calculation results with the problem sentence omitted 0
Can you solve it?
I think it's only necessary to use the writing method learned in elementary school for the calculation of sum and product
(Rather than adding all after multiplying
If you add to the calculation results one by one, fewer arrays are required)
Answer # 2
Here,accurateis the best point. And if you try to match exactly to the last digit, you can't handle it with a normal floating point number (in the first place, even a commonly used binary floating point number doesn't even give 0.1 exactly).
The policy is
First, create a function that multiplies two decimal numbers instring(other than strings, but in that case, it is necessary to convert between strings separately) )
Calculate the target value by repeatedly calling the function created aboveThe flow is
In addition, when it is necessary for business to use "accurate multiplication" for educational purposes, some kind of library will be included (some languages may have standard support).
- php - coincheck api authentication doesn't work
- php - i would like to introduce the coincheck api so that i can make payments with bitcoin on my ec site
- [php] i want to get account information using coincheck api
- python - you may need to restart the kernel to use updated packages error
- python 3x - typeerror: 'method' object is not subscriptable
- xcode - pod install [!] no `podfile 'found in the project directory
- the emulator process for avd pixel_2_api_29 was killed occurred when the android studio emulator was started, so i would like to
- vuejs - [vuetify] unable to locate target [data-app] i want to unit test to avoid warning
- android studio - unresolved reference comes out in kotlin