From 997eb1c292b423bc35d2da1287cd151276b26e29 Mon Sep 17 00:00:00 2001 From: ashishkore <43812466+ashishkore@users.noreply.github.com> Date: Wed, 3 Oct 2018 16:54:09 +0530 Subject: [PATCH] FriendsPairing --- dynamic_programming/friendspairing.cpp | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 dynamic_programming/friendspairing.cpp diff --git a/dynamic_programming/friendspairing.cpp b/dynamic_programming/friendspairing.cpp new file mode 100644 index 0000000..e919e0c --- /dev/null +++ b/dynamic_programming/friendspairing.cpp @@ -0,0 +1,33 @@ + +// C++ program solution friends pairing problem +// C++ program for solution of +// friends pairing problem +#include +using namespace std; + +// Returns count of ways n people +// can remain single or paired up. +int countFriendsPairings(int n) +{ + int dp[n + 1]; + + // Filling dp[] in bottom-up manner using + // recursive formula explained above. + for (int i = 0; i <= n; i++) + { + if (i <= 2) + dp[i] = i; + else + dp[i] = dp[i - 1] + (i - 1) * dp[i - 2]; + } + + return dp[n]; +} + +// Driver code +int main() +{ + int n = 4; + cout << countFriendsPairings(n) << endl; + return 0; +}