题目地址:点击打开链接
思路:不能直接用二次函数根的判别公式,因为a,b,c的不同取值会导致函数变成常函数,一次函数等
a=0 | b=0 | c=0 | INF | 对任何数都成立 |
a=0 | b=0 | c!=0 | 0 | 常函数 |
a=0 | b!=0 | c=0 | 1 | 一次函数 |
a=0 | b!=0 | c!=0 | 1 | 一次函数 |
a!=0 | 判别公式 | 二次函数 |
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int t,a,b,c;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&a,&b,&c);
if(a == 0 && b == 0 && c == 0)
printf("INF\n");
else if(a == 0 && b == 0 && c != 0)
printf("0\n");
else if(a == 0 && b != 0)
printf("1\n");
else if(b*b - 4*a*c > 0)
printf("2\n");
else if(b*b - 4*a*c == 0)
printf("1\n");
else if(b*b - 4*a*c < 0)
printf("0\n");
}
return 0;
}