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

โปรแกรม C++ หาความต่างน้อยที่สุดระหว่างผลรวมสองเซตจาก n จำนวนธรรมชาติแรก

สมมติว่าเรามีตัวเลข n พิจารณา n จำนวนธรรมชาติแรก เราต้องแบ่งพวกมันเป็นสองเซต A และ B โดยที่แต่ละองค์ประกอบอยู่ในเซตเดียวเท่านั้น และความต่างสัมบูรณ์ระหว่างผลรวมองค์ประกอบใน A และผลรวมใน B เป็นน้อยที่สุด และหาความต่างนั้น

เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 5 ผลลัพธ์จะได้ 1 เพราะถ้าเราทำ A = {1, 3, 4} และ B = {2, 5} ค่าผลรวมคือ 8 และ 7 ความต่างคือ 1

ขั้นตอนการแก้ปัญหา

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:

คืนค่า (n * (n + 1) / 2) mod 2

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

ดูการนำไปใช้จริงด้านล่างเพื่อความเข้าใจที่ดียิ่งขึ้น:

#include <bits/stdc++.h> using namespace std; int solve(int n) {    return (n * (n + 1) / 2) % 2; } int main() {    int n = 5;    cout << solve(n) << endl; }

ข้อมูลนำเข้า

5

ข้อมูลส่งออก

1