社区讨论

只会二次及以下的

P2312[NOIP 2014 提高组] 解方程参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lqixshxm
此快照首次捕获于
2023/12/24 11:35
2 年前
此快照最后确认于
2023/12/24 14:22
2 年前
查看原帖
只会做二次的,有哪位大佬能教一下二次以上的?
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=300000;
int n,m;
int e[N],a,b,c,x,x1,x2;
int main(){
	cin>>n>>m;
	if(n==1){
		cin>>a>>b;
		x=-a/b;
		if(x>=1&&x%1==0) cout<<1<<endl<<x;
		else cout<<0;
		return 0;
	}
	if(n=2){
		cin>>c>>b>>a;
		int zoo=b*b-4*a*c;
		if(zoo<0) cout<<0;
		else{
			x1=(-b+sqrt(zoo))/(2*a);
			x2=(-b-sqrt(zoo))/(2*a);
			if(x1>=1&&x2>=1&&x1%1==0&&x2%1==0&&x1<=m&&x1!=x2) cout<<2<<endl<<x2<<endl<<x1;
			else if((x1>=1&&x2<1&&x1%1==0&&x1<=m)||(x1==x2&&x1>=1&&x1<=m&&x1%1==0)) cout<<1<<endl<<x1;
			else cout<<0;
			return 0;
		}
	}
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...