题目描述
blablabla
样例
2 3.14
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2024;
string s;
int a[N] = {};
int n;
int main()
{
cin >> n >> s;
reverse(s.begin(),s.end());
int pos = s.find('.');
s.erase(pos,1);
int len = s.size();
for(int i = 0; i<len; i++) a[i+1] = s[i]-'0';
//高精乘以低精 用每个2去依次乘以数组内的数,然后处理进位
for(int i = 1; i<=n; i++)
{
for(int j = 1; j<=len; j++)
a[j] = 2*a[j];
for(int k = 1; k<=len; k++)
{
if(a[k] >= 10)
{
a[k+1] += 1;
a[k] %= 10;
if(k == len) len++; //增加数组长度
}
}
}
//处理进位
if(a[pos] + 5 >= 10) a[pos+1] += 1;
for(int i = len; i>=pos+1; i--)
cout<<a[i];
return 0;
}
测试点是 1 99.9的时候wa了