问题描述
小蓝最近在研究一种浮点数的表示方法:R格式。对于一个大于0的浮点数d,可以用R格式的整数来表示。给定一个转换参数n,将浮点数转换为R格式整数的做法是:
- 将浮点数乘以2^n;
- 四舍五入到最接近的整数。
输入格式
一行输入一个整数n和一个浮点数d,分别表示转换参数,和待转换的浮点数。
输出格式
输出一行表示答案:d用R格式表示出来的值。
样例输入
2 3.14
样例输出
13
样例说明
3.14 × 2^2 = 12.56,四舍五入后为13。
评测用例规模与约定
- 对于50%的评测用例:1 ≤ n ≤ 10,1 ≤ 将d视为字符串时的长度 ≤ 15。
- 对于100%的评测用例:1 ≤ n ≤ 1000,1 ≤ 将d视为字符串时的长度 ≤ 1024;保证d是小数,即包含小数点。
思路:
暴力
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
long double d;
int main()
{
cin >> n >> d;
ll ans = (ll)(pow(2,n)*d+0.5);
cout << ans;
return 0;
}
思路:
模拟高精度
代码: