在C++程序中找到两个与N相同的和和乘积的数字

在本教程中,我们将编写一个程序来查找两个数字,其中 x + y = n 和 x * y = n。有时无法找到这些类型的数字。如果没有这样的数字,我们将打印None 。让我们开始吧。

给定的数字是二次方程的和和乘积。因此,如果 n 2 - 4*n<0,则数字不存在。否则,数字将是 $$\lgroup n + \sqrt n^{2} - 4*n\rgroup/2$$和 $$\lgroup n - \sqrt n^{2} - 4*n\rgroup/2$$。

示例

让我们看看代码。

#include <bits/stdc++.h>
using namespace std;
void findTwoNumbersWithSameSumAndProduc(double n) {
   double imaginaryValue = n * n - 4.0 * n;
   // 检查虚根
   if (imaginaryValue < 0) {
      cout << "None";
      return;
   }
   // 打印 x 和 y
   cout << (n + sqrt(imaginaryValue)) / 2.0 << endl;
   cout << (n - sqrt(imaginaryValue)) / 2.0 << endl;
}
int main() {
   double n = 50;
   findTwoNumbersWithSameSumAndProduc(n);
   return 0;
}
输出结果

如果你执行上面的程序,那么你会得到下面的结果。

48.9792
1.02084

结论

如果您对本教程有任何疑问,请在评论部分提及。

猜你喜欢