社区讨论

为什么这种做法需要特判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 条回复,欢迎继续交流。

正在加载回复...