1. 程式人生 > >2018 Multi-University Training Contest 6 A oval-and-rectangle【精度】

2018 Multi-University Training Contest 6 A oval-and-rectangle【精度】

用定積分推匯出答案是 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; }