假设我们有两个整数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。因此,总和,乘积和差为-
总和=(N – 2)* 1 + 2 +(N + D)= 2 * N + D
乘积=(N – 2)* 1 * 2 *(N + D)= 2 * N + 2 * D
差=(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