From 41841f5dd5e859aaa44b5ef1abf1576e09f94d6e Mon Sep 17 00:00:00 2001 From: ADI <114460573+adityapatil4545@users.noreply.github.com> Date: Mon, 24 Oct 2022 15:59:20 +0530 Subject: [PATCH] added Hat Check Problem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This problem can be solved by counting the number n of derangements of an n–element set. A derangement is a permutation of a set’s elements, such that no element appears in its original position. --- Hat_Check_Problem.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Hat_Check_Problem.c diff --git a/Hat_Check_Problem.c b/Hat_Check_Problem.c new file mode 100644 index 0000000..ccb2ddb --- /dev/null +++ b/Hat_Check_Problem.c @@ -0,0 +1,22 @@ +#include + +// Recursive function to count the derangements of an n–element set +int derangements(int n) +{ + // base case + if (n == 1 || n == 2) { + return n - 1; + } + + // recur using the recurrence relation + return (n - 1) * (derangements(n - 1) + derangements(n - 2)); +} + +int main(void) +{ + int n = 4; + printf("The total number of derangements of a %d–element set is %d", + n, derangements(n)); + + return 0; +}