回 帖 发 新 帖 刷新版面

主题:寻高人指点!


#include<iostream>
using namespace std;
int main()
{float R;
int n,i;
0<n<=25;0.0<R<99.999;
cin>>R>>n>>endl;
for(i=0;i<=n-1;i++)
{R=R*R;
cout<<"R="<<R<<endl;
return 0;
}
能用中文解释下出错的原因吗?寻高手!!!!!!!!!!!!!!!

回复列表 (共2个回复)

沙发


你这句是什么意思"0<n<=25;0.0<R<99.999;"是想使用断言吗?
cin>>R>>n[color=FF0000]/*>>endl*/[/color];
for(i=0;i<=n-1;i++)
{R=R*R;
cout<<"R="<<R<<endl;
[color=FF0000]}[/color]//这里少了
return 0;
}

板凳


我后来发现我编在上面的程序出现了很多错误。谢谢你提醒!
那个原题是:求高精度幂
Time Limit: 500MS  Memory Limit: 10000K 
Total Submissions: 55880  Accepted: 13108 

Description

对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 

现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < n <= 25。
Input

T输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。
Output

对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。
Sample Input

95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12

Sample Output

548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
我真不知道该怎么编那个程序,感觉无从下手,我只是个学C++的起步新手,希望各位朋友能帮帮我,谢谢了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册