สมมติว่าเรามีตัวเลข 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