在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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP