#P1517. 高精求小数幂

高精求小数幂

题目描述

计算量非常大、精度要求非常高的问题是很常见的。举个例子,计算国家债务就是这么一项对于许多计算机系统来说非常繁重的工作。

现在有这么一个任务要求编写一个程序来计算 RnR^n 的精确值,其中R是一个实数 (0.0<R9999.90.0 < R \leq 9999.9) 而 nn 是一个整数(0<n2500 < n \leq 250)。

输入格式

输入将包含一个小于 1111 行的文件,其中每一行包括一个 RR 和一个 nn,中间用空格隔开(数量不定但是保证R的第一位在第一列而 nn 的末位在第九列)

输出格式

对于每一个输入需要有一行的输出,表示 RnR^n 的精确值。有三点要求:

  1. 输出不允许有前导0

  2. 不允许无意义的尾随0(如 1.901.90 中的 00 不能输出)

  3. 如果结果是整数,不应该打印小数点

题目大意

计算量非常大、精度要求非常高的问题是很常见的。举个例子,计算国家债务就是这么一项对于许多计算机系统来说非常繁重的工作。

现在有这么一个任务要求编写一个程序来计算R^n的精确值,其中R是一个实数(0.0 < R <= 9999.9)而n是一个整数(0 < n <= 250)。

输入将包含一个小于11行的文件,其中每一行包括一个R和一个n,中间用空格隔开(数量不定但是保证R的第一位在第一列而n的末位在第九列)

对于每一个输入需要有一行的输出,表示R^n的精确值。有三点要求:

1、输出不允许有前导0

2、不允许无意义的尾随0(如1.90中的0不能输出)

3、如果结果是整数,不应该打印小数点

如果你不知道如何确定输入的末尾值:

以下是一些帮助

string s; int n;

c++版while(cin >> s >> n) {…这里是你的代码}

c版while(scanf("%s%d",s,&n)==2) //以查看scanf是否按需要的数量读取。

{…这里是你的代码}

感谢 @SLYZ_0120 提供的翻译。

95.123  2
0.4321  5
5.1234  7
6.7592  3
98.999  5
1.0100 10

9048.385129
.01506334182914325601
92663.3181348508776705891407804544
308.806114738688
9509420210.697891990494999
1.10462212541120451001

提示

如果你不知道如何确定输入的末尾值:

以下是一些帮助

string s; int n;

c++版

while(cin >> s >> n) {…这里是你的代码}

c版

while(scanf("%s%d",s,&n)==2) //以查看scanf是否按需要的数量读取。

{…这里是你的代码}