⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fang_cheng.cpp

📁 求解一元二次方程的算法
💻 CPP
字号:
#include<iostream.h>
#include<math.h>

const int max=100;
int gene1[max],gene2[max];

void z_f(int& integer){
	if(integer<0)integer=-integer;
	return;
}

void gene(int integer,int& y){
	z_f(integer);
	for(int i=integer;i>=-integer;i=i-1){
		for(int j=integer;j>=-integer;j=j-1){
			if(integer==i*j){
				gene1[y]=i;
				gene2[y]=j;
				y=y+1;
			}
		}
	}
	return;
}

int main(){
	int gene_1[max],gene_2[max],gene_3[max],gene_4[max];
	int i,j,k,m,n,y1,y2,a,b,c;
	double x1,x2,deta;

	cout<<"请输入方程的系数: ";
	cin>>a>>b>>c;
	y1=0;
	gene(a,y1);
	for(i=0;i<y1;i=i+1)gene_1[i]=gene1[i];
	for(i=0;i<y1;i=i+1)gene_2[i]=gene2[i];
	y2=0;
	gene(c,y2);
	for(i=0;i<y2;i=i+1)gene_3[i]=gene1[i];
	for(i=0;i<y2;i=i+1)gene_4[i]=gene2[i];
	for(i=0;i<y1;i=i+1){
		for(j=0;j<y1;j=j+1){
			for(k=0;k<y2;k=k+1){
				for(m=0;m<y2;m=m+1){
					if((b==(gene_1[i]*gene_4[m]+gene_2[j]*gene_3[k]))&&(a==gene_1[i]*gene_2[j])&&(c==gene_3[k]*gene_4[m])){
						cout<<endl;n=1;
						cout<<"利用因式分解得: "<<endl<<endl;
						cout<<"    "<<gene_1[i]<<"\\/"<<gene_3[k]<<"\n";
						cout<<"    "<<gene_2[j]<<"/\\"<<gene_4[m]<<endl<<endl;
						cout<<"方程可化为: "<<"\n";
						cout<<"  (";
						if(gene_1[i]==1){
							cout<<"x";
						}else{
							cout<<gene_1[i]<<"x";
						}
						if(gene_3[k]<0){
							cout<<"+"<<-gene_3[k]<<")(";
						}else{
							cout<<"-"<<gene_3[k]<<")(";
						}
						if(gene_2[j]==1){
							cout<<"x";
						}else{
							cout<<gene_2[j]<<"x";
						}
						if(gene_4[m]<0){
							cout<<"+"<<-gene_4[m]<<")=0"<<endl<<endl;
						}else{
							cout<<"-"<<gene_4[m]<<")=0"<<endl<<endl;
						}
						cout<<"所以方程的解是:"<<"\n";
						cout<<"  x1="<<double(gene_3[k])/gene_1[i]<<", x2="<<double(gene_4[m])/gene_2[j]<<"\n";
					}if(n==1)break;
				}if(n==1)break;
			}if(n==1)break;
		}if(n==1)break;
	}
	if(n!=1){
		deta=b*b-4*a*c;
		if(deta>=0){
			x1=(-b+sqrt(deta))/(2*a);
			x2=(-b-sqrt(deta))/(2*a);
			cout<<"利用公式法可求得方程的解是:"<<"\n";
			cout<<"  x1="<<x1<<", x2="<<x2<<"\n";
		}else{
			cout<<"原方程没有解."<<endl;
		}
	}

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -