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

โปรแกรม C++ เพื่อหาจำนวนสูงสุดที่เป็นไปได้จากจำนวนเต็มที่กำหนด


สมมติว่าเราได้รับจำนวนเต็มสองจำนวน n และ m และมี k tuples ของจำนวนเต็มที่มีตัวเลขจำนวนเต็มสี่จำนวน {ai, bi, ci, di} มีสี่อาร์เรย์ a, b, c, d และ a[i] หมายถึงค่าทูเปิลที่ i ตอนนี้ ให้เราพิจารณาลำดับ dp ที่มีจำนวนเต็มบวก n และ 1 <=dp[1]

ดังนั้น หากอินพุตเป็น n =4, m =5, k =4, a ={2, 2, 3, 5}, b ={4, 3, 4, 6}, c ={4, 3, 3, 4}, d ={110, 20, 20, 40} แล้วผลลัพธ์จะเป็น 130

ขั้นตอน

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

กำหนดอาร์เรย์ A, B, C, D และ dp ของขนาด:100, 100, 100, 100, 10 ตามลำดับ กำหนดฟังก์ชัน deepSearch() ซึ่งจะใช้ c, l, ถ้า c เหมือนกับ n แล้ว:ทั้งหมด :=0 สำหรับการเริ่มต้น i :=0 เมื่อฉัน  

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include ใช้เนมสเปซ std;int n, m, k, res =0;int A[100], B[100], C[100], D[100], dp[ 10]; ความลึกเป็นโมฆะค้นหา (int c, int l){ if(c ==n){ รวมทั้งหมด =0; for(int i =0; i  

อินพุต

<ก่อน>4, 5, 4, {2, 2, 3, 5}, {4, 3, 4, 6}, {4, 3, 3, 4}, {110, 20, 20, 40}

ผลลัพธ์

130