http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1001&cid=807
用定积分推导出答案是 2.0*b+a*pi
但是答案要求忽略掉第七位,所以不可以直接用double(四舍五入)。
要么转换成长整型,要么将double第七位的隐患解决掉(感觉可以二分,很啰嗦但很有效)。
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
const int maxn = 1e5+55;
const double eps = 1e-7;
const double pi = acos(-1);
double a,b;
#define LL long long
int main()
{
int T;
scanf("%d",&T);
while(T--){
cin>>a>>b;
double ans = 2.0*b+a*pi;
// printf("%.6lf\n",ans);
LL aa=ans*1000000;
LL bb=aa%1000000;
aa=aa/1000000;
printf("%lld.%06lld\n",aa,bb);
}
return 0;
}