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

รหัส C++ เพื่อนับจำนวนการแบ่งน้ำหนักของตัวเลข n


สมมติว่าเรามีตัวเลข n เราสามารถแบ่ง n เป็นลำดับจำนวนเต็มบวกที่ไม่เพิ่มขึ้น ซึ่งผลรวมคือ n น้ำหนักของการแยกคือจำนวนขององค์ประกอบในการแยกที่เท่ากับองค์ประกอบแรก ดังนั้น น้ำหนักของรอยแยก [1,1,1,1,1] คือ 5 น้ำหนักของรอยแยก [5,5,3,3,3] คือ 2 และน้ำหนักของรอยแยก [9] เท่ากับ 1 เราต้องหาจำนวนน้ำหนักที่แตกต่างกันของการแยกตัวของ n

ดังนั้น หากอินพุตมีค่าเท่ากับ n =7 ผลลัพธ์จะเป็น 4 เนื่องจากน้ำหนักที่เป็นไปได้คือ [7], [3, 3, 1], [2, 2, 2, 1], [1, 1, 1 , 1, 1, 1, 1]

ขั้นตอน

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

return (n / 2 + 1)

ตัวอย่าง

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

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

อินพุต

7

ผลลัพธ์

4