在 C++ 中查找 N 个整数,给定乘积与和之间的差值

c++server side programmingprogramming

假设我们有两个整数 N 和 D。我们必须找到一组 N 个整数,它们的和与乘积之间的差值与 D 相同。假设 N = 3,D = 5,则输出将是 1、2、8。这里和是 1 + 2 + 8 = 11,乘积是 1 * 2 * 8 = 16,16 和 11 之间的差值是 5。

我们必须解决这个问题;我们将使用一种巧妙的方法。在这里,我们将尝试找到 N–2 个 1、一个 2 和剩下的一个数字 N + D。因此,和、乘积和差将是−

  • Sum = (N – 2)*1 + 2 + (N + D) = 2*N + D
  • Product = (N – 2)*1 * 2 * (N + D) = 2*N + 2*D
  • Difference = (2*N + 2*D) – (2*N + D) = D

示例

#include<iostream>
using namespace std;
void getNNumbers(int n, int d) {
   for (int i = 0; i < n - 2; i++)
      cout << 1 << " ";
   cout << 2 << " ";
   cout << n + d << endl;
}
int main() {
   int N = 5, D = 8;
   getNNumbers(N, D);
}

输出

1 1 1 2 13

相关文章