给定三个整数a , b和c ,使得a + b + c = 0 。任务是找到二次方程ax 2 + bx + c = 0的根。
例子:
Input: a = 1, b = 2, c = -3
Output: 1, -3
Input: a = -5, b = 3, c = 2
Output: 1, -2.5
方法:当a + b + c = 0时,方程ax 2 + bx + c = 0的根总是1和c / a 。
例如,
Take a = 3, b = 2 and c = -5 such that a + b + c = 0
Now, the equation will be 3x2 + 2x – 5 = 0
Solving for x,
3x2 + 5x – 3x – 5 = 0
x * (3x + 5) -1 * (3x + 5) = 0
(x – 1) * (3x + 5) = 0
x = 1, x = (-5 / 3) = (c / a)
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to print the roots of the
// quadratic equation when a + b + c = 0
void printRoots(long a, long b, long c)
{
cout << 1 << ", " << c / (a * 1.0);
}
// Driver code
int main()
{
long a = 2;
long b = 3;
long c = -5;
printRoots(a, b, c);
return 0;
}
Java
// Java implementation of the approach
class GFG
{
// Function to print the roots of the
// quadratic equation when a + b + c = 0
static void printRoots(long a, long b, long c)
{
System.out.println(1 + ", " + c / (a * 1.0));
}
// Driver Code
public static void main (String[] args)
{
long a = 2;
long b = 3;
long c = -5;
printRoots(a, b, c);
}
}
// This code is contributed by
// sanjeev2552
Python3
# Python3 implementation of the approach
# Function to print the roots of the
# quadratic equation when a + b + c = 0
def printRoots(a, b, c):
print(1, ",", c / (a * 1.0))
# Driver code
a = 2
b = 3
c = -5
printRoots(a, b, c)
# This code is contributed by Mohit Kumar
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to print the roots of the
// quadratic equation when a + b + c = 0
static void printRoots(long a, long b, long c)
{
Console.WriteLine("1, " + c / (a * 1.0));
}
// Driver code
public static void Main()
{
long a = 2;
long b = 3;
long c = -5;
printRoots(a, b, c);
}
}
// This code is contributed by Nidhi
PHP
Javascript
输出:
1, -2.5
时间复杂度: O(1)