解二元一次方程组,解一元三次方程,帮你解决困难的数学题目

说明
形如:ax3+bx2+cx+d=0ax
3
+bx
2
+cx+d=0这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值 >1。要求它的三个实根。

输入格式
一行四个实数:a,b,c,d。a,b,c,d。

输出格式
一行由小到大输出这三个实根(根与根之间留有空格),并精确到小数点后2位。

#include
using namespace std;
float a,b,c,d,x,g[4][3];
int g1=1;
int main(){
//	freopen("B.in","r",stdin); 
//	freopen("B.out","w",stdout);cin>>a>>b>>c>>d;d=0-d;bool fir,sec;for(float i=-100;i<=100;i++){float sum=a*i*i*i+b*i*i+c*i;sec=sum>d;if(fir!=sec && i!=-100){g[g1][1]=i-1,g[g1][2]=i,g1++;}fir=sum>d;}float k;long double eps=pow(10,-3);for(int i=1;i<=3;i++){for(k=g[i][1];k<=g[i][2];k+=0.01){float sum=a*k*k*k+b*k*k+c*k;if(abs(sum-d)<=eps){cout<<fixed<<setprecision(2)<<k<<" ";break;}}}return 0;
}

描述
给定一个二元一次方程组,形如:
ax+by=c;
dx+ey=f;
x,y代表未知数,a,b,c,d,e,f为参数,求解x,y。

输入格式
输入包含六个整数:a,b,c,d,e,f。

输出格式
输出为方程组的解,一定是两个整数x,y。

#include
using namespace std;
long long a,b,c,d,e,f;
long long x,y;
int main()
{cin>>a>>b>>c>>d>>e>>f;//ax+by=c;dx+ey=f;long long k;k=max(b,e);for(int i=0;i<=b*e;i+=k){if(i%b==0&&i%e==0&&i!=0){k=i;break;}}//10.求最小公倍数k int bb=k/b;int eb=k/e;//2.统一系数,准备消元  //(a*bb-d*eb)x=(c*bb-f*eb);x=(c*bb-f*eb)/(a*bb-d*eb);//ax+by=c;y=(c-a*x)/b;//4.解方程  cout<<x<<" "<<y;return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部