高数
-
描述
-
那一天,XxX_stu一个人在宿舍快乐地写代码,突然发现QQ闪了一下,“咦,师妹找我。”
“师兄你会高数吗”
XxX_stu一看到这句话顿时就不乐意了。开玩笑?在逗我?我一个搞ACM的搞不定一道小小的高数?
“题目是什么,发过来”,噼里啪啦一行字打过去。
接下来就是师妹发过来的题目:
已知:
求。
大概花了0.01秒的沉思,XxX_stu想出了解决方法。又过了两分钟,XxX_stu得到了答案。没错,XxX_stu这是这么叼。
现在轮到你来解决这个问题了,但是你的问题要难那么一点点
你要求的是。
-
输入
-
输入文件的第一行有一个整数T,表示总共有T组测试数据。
接下来有T行,每行两个有理数a,b。0<=a<=b<=10。
输出
- 对于每组测试,输出一个答案。浮点数太恶心啦,所以你要输出四舍五入到整数位的结果。 样例输入
-
2 0 2 0 10
样例输出
-
2 420
上传者
想法:
用微积分定义做,取大概值
代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
double fun(double x)
{
double res=0.0;
if(0<=x&&x<=2)
{
res=sqrt(x)*(2-x);
}
if(2<x&&x<=5)
{
res=x*x*x-2*x*x-x+2;
}
if(5<x&&x<=10)
{
res=72-sqrt((x-5)*sqrt((x-5)*sqrt(x-5)));
}
return res;
}
int main()
{
int T;
double n,m;
scanf("%d",&T);
while(T--)
{
scanf("%lf%lf",&n,&m);
double ans=0.0,i;
for(i=n;i<=m;i+=0.001)
{
ans+=fun(i)*0.001;
}
printf("%.0lf\n",ans);
}
return 0;
}
-
输入文件的第一行有一个整数T,表示总共有T组测试数据。