在C ++中找到N个具有乘积与总和之间给定差的整数
假设我们有两个整数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