สมมติว่าเรามีจำนวนอาร์เรย์ของตัวเลขจำนวนมาก ตัวเลขจำนวนมากอยู่ในช่วง (-2^31 ถึง 2^31 - 1) เราต้องหาผลรวมของตัวเลขเหล่านี้
ดังนั้น หากอินพุตเป็น nums =[5000000003, 3000000005, 8000000007, 2000000009, 7000000011] ผลลัพธ์จะเป็น 25000000035
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- x :=0
- สำหรับการเริ่มต้น i :=0 เมื่อ i <ขนาดของ nums อัปเดต (เพิ่ม i ขึ้น 1) ทำ −
- x :=x + nums[i]
- ผลตอบแทน x
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
#include#include ใช้เนมสเปซ std;ลองแก้ int ยาว (เวกเตอร์ <ยาว int> nums){ ยาว int ยาว x =0; สำหรับ(int i=0; i nums ={5000000003, 3000000005, 8000000007, 2000000009, 7000000011}; ศาล <<แก้ (nums);}
อินพุต
<ก่อน>{5000000003, 3000000005, 8000000007, 200000009, 7000000011}ผลลัพธ์
25000000035