在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