Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หา N จำนวนเต็มที่มีความต่างระหว่างผลคูณและผลรวมเท่ากับ D


สมมติว่าเรามีจำนวนเต็มสองจำนวน 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 ดังนั้นผลรวม ผลคูณ และความต่างจะเป็น:

  • Sum = (N - 2)*1 + 2 + (N + D) = 2*N + D
  • Product = (N - 2)*1 * 2 * (N + D) = 2*N + 2*D
  • Difference = (2*N + 2*D) - (2*N + D) = D

ตัวอย่างโค้ด C++

#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