在 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