สมมติว่าเรามีตัวเลข n อาร์เรย์ B ถือว่า "ดี" ถ้าผลรวมขององค์ประกอบหารด้วยความยาวของอาร์เรย์ลงตัว เราบอกว่าอาร์เรย์ A ขนาด n เป็น "สมบูรณ์" (perfect) ถ้าสับอาร์เรย์ (subarray) ที่ไม่ว่างทุกตัวของ A เป็นอาร์เรย์ดี และองค์ประกอบใน A อยู่ในช่วง 1 ถึง 100 จากตัวเลข n เราต้องหาอาร์เรย์ A ที่เป็นสมบูรณ์
เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 4 ผลลัพธ์จะได้ [7, 37, 79, 49] คำตอบอื่นก็ได้
ขั้นตอนการแก้ปัญหา
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
สำหรับ i := 0 เมื่อ i < n เพิ่ม i ทีละ 1 ทำ: พิมพ์ 1
ตัวอย่างโค้ด
ดูการนำไปใช้จริงด้านล่างเพื่อความเข้าใจที่ดียิ่งขึ้น:
#include<bits/stdc++.h> using namespace std; void solve(int n){ for(int i=0;i<n;i++){ cout<<"1"<<", "; } } int main(){ int n = 4; solve(n); }
ข้อมูลนำเข้า
4
ข้อมูลส่งออก
1, 1, 1, 1,