Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm N số nguyên có hiệu giữa tích và tổng đã cho trong C ++


Giả sử chúng ta có hai số nguyên N và D. Chúng ta phải tìm một tập hợp N số nguyên, trong đó hiệu giữa tổng và tích của chúng bằng D. Giả sử N =3, và D =5, thì đầu ra sẽ là 1, 2, 8. Ở đây tổng là 1 + 2 + 8 =11 và tích là 1 * 2 * 8 =16, hiệu số giữa 16 và 11 là 5.

Chúng ta phải giải quyết vấn đề này; chúng tôi sẽ sử dụng một phương pháp phức tạp. Ở đây, chúng tôi sẽ cố gắng tìm N – 2 số 1, một 2 và còn lại một số N + D. Vì vậy, tổng, tích và hiệu sẽ là -

  • Tính tổng =(N - 2) * 1 + 2 + (N + D) =2 * N + D
  • Sản phẩm =(N - 2) * 1 * 2 * (N + D) =2 * N + 2 * D
  • Chênh lệch =(2 * N + 2 * D) - (2 * N + D) =D

Ví 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);
}

Đầu ra

1 1 1 2 13