एक समूह में n मित्रों की संख्या होती है। प्रत्येक व्यक्ति अविवाहित रह सकता है या किसी अन्य मित्र के साथ जोड़ा जा सकता है। उन तरीकों की कुल संख्या ज्ञात करें, जिनसे मित्र अविवाहित रह सकते हैं या जोड़े जा सकते हैं।
यदि एक जोड़े के दो मित्र p और q हैं, तो (p, q) या (q, p) समान हैं।
n दोस्तों के एक समूह के लिए, f(n) उन तरीकों की संख्या होने दें कि उन्हें कैसे जोड़ा जा सकता है या सिंगल रह सकते हैं। तब या तो वां व्यक्ति अविवाहित रहता है, या युग्मित हो जाता है। यदि वां व्यक्ति अविवाहित है, तो हम (n-1) मित्रों के लिए पुनरावृत्ति करते हैं। यदि nवें व्यक्ति को शेष (n-1) व्यक्ति में से किसी के साथ जोड़ा जाता है, तो, हम (n-1) *f(n-2) की पुनरावृत्ति करते हैं।
इनपुट और आउटपुट
<पूर्व>इनपुट:मित्रों की संख्या। कहें 5.आउटपुट:उन्हें पेयर करने का संभावित तरीका। यहाँ उत्तर 26 है।एल्गोरिदम
काउंटपेयर(एन)
इनपुट: दोस्तों की संख्या।
आउटपुट :n दोस्तों को जोड़ने के तरीकों की संख्या।
शुरुआत n + 1 जोड़ी [0]:=0, जोड़ी [1]:=1 और जोड़ी [2] की जोड़ी सरणी को परिभाषित करना शुरू करें [2]:=2 के लिए मैं 3 से n की सीमा में, जोड़ी करें [i]:=जोड़ी[i-1] + (i+1)*जोड़े[i-2] किया हुआ जोड़ा[n]अंत
उदाहरण
#includeनामस्थान का उपयोग करके std;int countPairs(int n) { int जोड़े[n + 1]; // ith संख्या के लिए जोड़े की संख्या // संख्या 0 से 2 के लिए, 0 से 2 संभावित संयोजन जोड़े हैं [0] =0; जोड़े [1] =1; जोड़े [2] =2; के लिए (int i =3; i <=n; i++) // 3 से n संख्या जोड़े के लिए सरणी भरें [i] =जोड़े [i-1] + (i-1) * जोड़े [i-2]; वापसी जोड़े [एन];} इंट मुख्य () {इंट एन; cout <<"संख्या दर्ज करें:"; सिनेमा>> एन; cout <<"जोड़ने के तरीकों की संख्या"< आउटपुट
नंबर दर्ज करें:55 दोस्तों को जोड़ने के तरीकों की संख्या:26