本题需掌握知识:一次函数相关知识、分支结构。
要想考虑全面确实起码绿的难度,再加上 if 不写乱,蓝题也是差不多的罢(个人向)。
考虑各种情况,我们一 一分析:
-1
石锤。0
石锤。-1
。0
石锤。-1
走人。心态差点炸了
注意:因为涉及到除法运算,建议使用float
或double
类型存储六个数据。
#include<bits/stdc++.h>
using namespace std;
double a1,b1,c1,a2,b2,c2;
int solve() {
if(b1||b2) {
if((!a1&&!b1&&!c1)||(!a2&&!b2&&!c2)) return -1;
if((!a1&&!b1)||(!a2&&!b2)) return 0;
if(!b1||!b2) return 1;
} else {
if((!a1&&c1)||(!a2&&c2)) return 0;
if(!(c2||c1)||!(a2||a1)||a1/c1==a2/c2) return -1;
return 0;
}
if(a1/b1==a2/b2) {
if(c1/b1==c2/b2) return -1;
return 0;
}
return 1;
}
int main() {
cin>>a1>>b1>>c1>>a2>>b2>>c2;
cout<<solve();
return 0;
}
代码还是很短的,但是调好有点难。
另:可以使用desmos帮助理解。
原文:https://www.cnblogs.com/ahawzlc/p/12748212.html