高数

来源:互联网 发布:中兴通讯 大数据 产品 编辑:程序博客网 时间:2024/06/11 17:34

高数

时间限制:1000 ms | 内存限制:65535 KB
难度:0
描述

那一天,XxX_stu一个人在宿舍快乐地写代码,突然发现QQ闪了一下,“咦,师妹找我。”

“师兄你会高数吗”

XxX_stu一看到这句话顿时就不乐意了。开玩笑?在逗我?我一个搞ACM的搞不定一道小小的高数?

“题目是什么,发过来”,噼里啪啦一行字打过去。

接下来就是师妹发过来的题目:

已知:

大概花了0.01秒的沉思,XxX_stu想出了解决方法。又过了两分钟,XxX_stu得到了答案。没错,XxX_stu这是这么叼。

现在轮到你来解决这个问题了,但是你的问题要难那么一点点

你要求的是。

输入
输入文件的第一行有一个整数T,表示总共有T组测试数据。
接下来有T行,每行两个有理数a,b。0<=a<=b<=10。
输出
对于每组测试,输出一个答案。浮点数太恶心啦,所以你要输出四舍五入到整数位的结果。
样例输入
20 20 10
样例输出
2420
my answer:
#include<iostream>#include<ios>#include<iomanip>#include<cmath>using namespace std;const int P = 1000000;double  fun1(double  m){if(0<=m&&m<=2) return sqrt(m)*(2-m);else if(2<m&&m<=5) return m*m*m-2*m*m-m+2;else if(5<m&&m<=10) return 72-sqrt((m-5)*sqrt((m-5)*sqrt(m-5)));}double  fun2(double a, double  b){double n = fabs(b-a)/P;double sum = 0;for(double   i = a;i <=b ;i +=n){sum+=fun1(i)*n;}return sum;}int main(){    double  a,b;int t;cin >>t ;while(t--){cin >> a >> b;cout <<setiosflags(ios::fixed)<<setprecision(0)<< fun2(a,b) << endl;}return 0;}
用的近似求值。。。。
别人的代码:
 #include <cstdio>#include <cmath>double origf(double x){if(x<2)return 1.333*pow(x,1.5)-0.4*pow(x,2.5)+288.741504;else if(x<5)return 0.25*x*x*x*x-0.666*x*x*x-0.5*x*x+2*x+289.583332;elsereturn 72*x-0.5333*pow(x-5,1.875);}int main(){int t;double a,b;scanf("%d",&t);while(t--){scanf("%lf%lf",&a,&b);printf("%d\n",(int)(origf(b)-origf(a)+0.5));}return 0;}        
那些奇奇怪怪的数字哪里来的呀抓狂抓狂抓狂


0 0
原创粉丝点击