- C++
信奥 周日晚上 蓝桥杯例题精讲
- 2024-5-12 20:32:30 @
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;
double f(double x){
return a*x*x*x+b*x*x+c*x+d;
}
int main(){
cin>>a>>b>>c>>d;
for(double i=-100;i<100;i++){
printf("%lf: %lf %lf\n",i,f(i),f(i+1));
if(f(i)*f(i+1)<=0) {
if(!f(i)) cout<<"@@@"<<fixed<<setprecision(2)<<i<<" ";
if(f(i)*f(i+1)<0){
double l=i,r=i+1,mid;
while(r-l>=0.001){
mid=(l+r)/2;
if(f(l)*f(mid)<0) r=mid;
else l=mid;
}
cout<<"@@@";
cout<<fixed<<setprecision(2)<<l<<" ";
}
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,x[30009];
cin>>n>>m;
for(int i=0;i<m;i++) cin>>x[i];
sort(x,x+m);
int l=0,r=m-1;
int ans=0;
while(l<=r){
if(x[l]+x[r]<=n) l++,r--,ans++;
else r--,ans++;
}
cout<<ans;
return 0;
}
作业:拼木棒
3 条评论
-
mrhowe SU @ 2024-5-18 18:14:13
主题:一元三次方程求解 重难点:理解题意,要知道什么事方程,什么是函数。理解求方程的解,就是求函数和x轴的交点的x值。 解题思路: 1、已知解在-100到100的区间内,且解与解之间的距离大于1,那么我们就可以把-100到100这个区间,分解成200份。 2、从左往右进行枚举,判断每一个小区间内是否有解(f(左端点)*f(右端点)<=0)。 3、有解时,整数解直接输出,小数解用二分法把区间缩小到要求的精确度,保留两位小时精确度<0.001。然后输出左端点的值。 作业:(http://101.34.12.22/discuss/6640b6de8092d84db080e5bc#1715517150817) 1、一元三次方程的注释 2、纪念品的分组 3、拼木棒
-
2024-5-18 18:13:59@
https://www.bilibili.com/video/BV1yW41167ax/?spm_id_from=333.999.0.0&vd_source=d9062a7be04a38dfcea84b5bbbcdde63
-
2024-5-18 17:57:57@
using namespace std; double a,b,c,d;//双精度浮点型变量 double f(double x){ return a*x*x*x+b*x*x+c*x+d; } int main(){ cin>>a>>b>>c>>d; for(double i=-100;i<100;i++){//区间-100到100 printf("%lf: %lf %lf\n",i,f(i),f(i+1)); if(f(i)*f(i+1)<=0) {//判断有没有解 if(!f(i)) cout<<"@@@"<<fixed<<setprecision(2)<<i<<" "; if(f(i)*f(i+1)<0){//判断是整数解还是非整数解 double l=i,r=i+1,mid; while(r-l>=0.001){// 二分控制精度 mid=(l+r)/2; if(f(l)*f(mid)<0) r=mid; else l=mid; } cout<<"@@@";//输出 cout<<fixed<<setprecision(2)<<l<<" ";//输出保留两位小数 } } } return 0; }
- 1