C++ 程序查找两个数字之和与乘积都等于 N


本教程将讨论一个程序,以找到两个数字(比如“a”和“b”),使得两者

a+b = N and a*b = N are satisfied.

从两个等式中消除“a”,我们得到关于“b”和“N”的二次方程,即

b2 - bN + N = 0

这个等式将具有两个根,这将为我们提供“a”和“b”的值。使用行列式方法求根,我们得到“a”和“b”的值为,

$a= (N-\sqrt{N*N-4N)}/2\ b= (N+\sqrt{N*N-4N)}/2 $

示例

 实时演示

#include <iostream>
//header file for the square root function
#include <math.h>
using namespace std;
int main() {
   float N = 12,a,b;
   cin >> N;
   //using determinant method to find roots
   a = (N + sqrt(N*N - 4*N))/2;
   b = (N - sqrt(N*N - 4*N))/2;
   cout << "The two integers are :" << endl;
   cout << "a - " << a << endl;
   cout << "b - " << b << endl;
   return 0;
}

输出

The two integers are :
a - 10.899
b - 1.10102

更新于: 2019-10-03

509 人阅读

激发您的职业生涯

完成课程即可获得认证

开始学习
广告