社区讨论
80分求助高精度题目
P1517高精求小数幂参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo84i31o
- 此快照首次捕获于
- 2023/10/27 12:38 2 年前
- 此快照最后确认于
- 2023/10/27 12:38 2 年前
闰土
高精度只有 80 分,不知道哪里错了但是 WA on test #2 and test #5 ,求助各位神牛啊!
CPP高精度只有 80 分,不知道哪里错了但是 WA on test #2 and test #5 ,求助各位神牛啊!
#include<bits/stdc++.h>
using namespace std;
int num[2000];
int main()
{
string s;int n;while(cin>>s>>n)
{
memset(num,0,sizeof(num));
while(s[s.length()-1]=='0')
s.erase(s.end()-1);
int dpos=s.find(".");
int ln=s.length();
int ws=ln-dpos-1,tmp=0;
s.erase(s.begin()+dpos);
for(int i=0;i<s.length();++i)
tmp=tmp*10+(s[i]-'0');
num[1999]=1;ws*=n;while(n--)
{
for(int i=0;i<2000;++i)
num[i]=num[i]*tmp;
for(int i=1998;i>=0;--i)
{
num[i]+=num[i+1]/10;
num[i+1]%=10;
}
num[0]%=10;
}
for(int i=0;i<2000-ws;++i)
if(num[i])
{
for(int j=i;j<2000-ws;++j)
cout<<num[j];break;
}
cout<<'.';int start=2000-ws;
for(int i=start;i<2000;++i)cout<<num[i];
cout<<endl;
}
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...