社区讨论
为什么这种做法需要特判0?
P4526【模板】自适应辛普森法 2参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo2gwg95
- 此快照首次捕获于
- 2023/10/23 13:39 2 年前
- 此快照最后确认于
- 2023/10/23 13:39 2 年前
rt,近似于梯形面积求积分,甚至比辛普森积分还要快一点,但是如果不特判a=0,就会一直90WA。
但是为什么写辛普森积分的就不用特判a=0呢?
代码:
CPP#include <bits/stdc++.h>
using namespace std;
const double eps=1e-5;//调到1e-2都能90
double a;
double Pow(double a,double b){
if(!a&&!b) return 1;
return pow(a,b);
}
double f(double x){
return Pow(x,a/x-x);
}
double jifen(double l,double r){
if(r-l<eps) return (f(r)+f(l))*(r-l)/2;
double mid=(l+r)/2;
return jifen(l,mid)+jifen(mid,r);
}
int main(){
cin>>a;
if(a<0) puts("orz");
//else if(!a) cout<<1.99546; 特判a=0
else printf("%.5lf",jifen(0,15));
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...