当一个人最多只能和一个人结对时,计算结对数

考虑编码竞赛 Geeksforgek的实践 .现在他们的 N 参加比赛的不同参与者。一名参与者最多可与另一名参与者配对。我们需要数一数 N 参与编码竞赛的参与者。 例如:

null
Input : n = 2Output : 22 shows that either both participant can pair themselves in one way or both of them can remain single.Input : n = 3 Output : 4One way : Three participants remain singleThree More Ways : [(1, 2)(3)], [(1), (2,3)]and [(1,3)(2)]

1) 每个参与者可以与另一个参与者配对,也可以保持单身。 2)让我们考虑 第X位 参与者,他可以保持单身,也可以 他可以和来自美国的人结对 [1,x-1] .

C++

// Number of ways in which participant can take part.
#include<iostream>
using namespace std;
int numberOfWays( int x)
{
// Base condition
if (x==0 || x==1)
return 1;
// A participant can choose to consider
// (1) Remains single. Number of people
//     reduce to (x-1)
// (2) Pairs with one of the (x-1) others.
//     For every pairing, number of people
//     reduce to (x-2).
else
return numberOfWays(x-1) +
(x-1)*numberOfWays(x-2);
}
// Driver code
int main()
{
int x = 3;
cout << numberOfWays(x) << endl;
return 0;
}


JAVA

// Number of ways in which
// participant can take part.
import java.io.*;
class GFG {
static int numberOfWays( int x)
{
// Base condition
if (x== 0 || x== 1 )
return 1 ;
// A participant can choose to consider
// (1) Remains single. Number of people
//     reduce to (x-1)
// (2) Pairs with one of the (x-1) others.
//     For every pairing, number of people
//     reduce to (x-2).
else
return numberOfWays(x- 1 ) +
(x- 1 )*numberOfWays(x- 2 );
}
// Driver code
public static void main (String[] args) {
int x = 3 ;
System.out.println( numberOfWays(x));
}
}
// This code is contributed by vt_m.


Python3

# Python program to find Number of ways
# in which participant can take part.
# Function to calculate number of ways.
def numberOfWays (x):
# Base condition
if x = = 0 or x = = 1 :
return 1
# A participant can choose to consider
# (1) Remains single. Number of people
# reduce to (x-1)
# (2) Pairs with one of the (x-1) others.
# For every pairing, number of people
# reduce to (x-2).
else :
return (numberOfWays(x - 1 ) +
(x - 1 ) * numberOfWays(x - 2 ))
# Driver code
x = 3
print (numberOfWays(x))
# This code is contributed by "Sharad_Bhardwaj"


C#

// Number of ways in which
// participant can take part.
using System;
class GFG {
static int numberOfWays( int x)
{
// Base condition
if (x == 0 || x == 1)
return 1;
// A participant can choose to
// consider (1) Remains single.
// Number of people reduce to
// (x-1) (2) Pairs with one of
// the (x-1) others. For every
// pairing, number of people
// reduce to (x-2).
else
return numberOfWays(x - 1) +
(x - 1) * numberOfWays(x - 2);
}
// Driver code
public static void Main ()
{
int x = 3;
Console.WriteLine(numberOfWays(x));
}
}
// This code is contributed by vt_m.


PHP

<?php
// Number of ways in which
// participant can take part.
function numberOfWays( $x )
{
// Base condition
if ( $x == 0 || $x == 1)
return 1;
// A participant can choose
// to consider (1) Remains single.
// Number of people reduce to (x-1)
// (2) Pairs with one of the (x-1)
// others. For every pairing, number
// of peopl reduce to (x-2).
else
return numberOfWays( $x - 1) +
( $x - 1) * numberOfWays( $x - 2);
}
// Driver code
$x = 3;
echo numberOfWays( $x );
// This code is contributed by Sam007
?>


Javascript

<script>
// Number of ways in which
// participant can take part.
function numberOfWays(x)
{
// Base condition
if (x == 0 || x == 1)
return 1;
// A participant can choose to consider
// (1) Remains single. Number of people
// reduce to (x-1)
// (2) Pairs with one of the (x-1) others.
// For every pairing, number of people
// reduce to (x-2).
else
return numberOfWays(x - 1) + (x - 1) * numberOfWays(x - 2);
}
// Driver code
var x = 3;
document.write(numberOfWays(x));
// This code is contributed by gauravrajput1
</script>


输出:

4

由于存在重叠的子问题,我们可以使用 动态规划 .

C++

// Number of ways in which participant can take part.
#include<iostream>
using namespace std;
int numberOfWays( int x)
{
int dp[x+1];
dp[0] = dp[1] = 1;
for ( int i=2; i<=x; i++)
dp[i] = dp[i-1] + (i-1)*dp[i-2];
return dp[x];
}
// Driver code
int main()
{
int x = 3;
cout << numberOfWays(x) << endl;
return 0;
}


JAVA

// Number of ways in which
// participant can take part.
import java.io.*;
class GFG {
static int numberOfWays( int x)
{
int dp[] = new int [x+ 1 ];
dp[ 0 ] = dp[ 1 ] = 1 ;
for ( int i= 2 ; i<=x; i++)
dp[i] = dp[i- 1 ] + (i- 1 )*dp[i- 2 ];
return dp[x];
}
// Driver code
public static void main (String[] args) {
int x = 3 ;
System.out.println(numberOfWays(x));
}
}
// This code is contributed by vipinyadav15799


Python3

# Python program to find Number of ways
# in which participant can take part.
# Function to calculate number of ways.
def numberOfWays (x):
dp = []
dp.append( 1 )
dp.append( 1 )
for i in range ( 2 ,x + 1 ):
dp.append(dp[i - 1 ] + (i - 1 ) * dp[i - 2 ])
return (dp[x])
# Driver code
x = 3
print (numberOfWays(x))
# This code is contributed by "Sharad_Bhardwaj"


C#

// Number of ways in which
// participant can take part.
using System;
class GFG {
static int numberOfWays( int x)
{
int []dp = new int [x+1];
dp[0] = dp[1] = 1;
for ( int i = 2; i <= x; i++)
dp[i] = dp[i - 1] +
(i - 1) * dp[i - 2];
return dp[x];
}
// Driver code
public static void Main ()
{
int x = 3;
Console.WriteLine(numberOfWays(x));
}
}
// This code is contributed by vt_m.


PHP

<?php
// PHP program for Number of ways
// in which participant can take part.
function numberOfWays( $x )
{
$dp [0] = 1;
$dp [1] = 1;
for ( $i = 2; $i <= $x ; $i ++)
$dp [ $i ] = $dp [ $i - 1] + ( $i - 1) *
$dp [ $i - 2];
return $dp [ $x ];
}
// Driver code
$x = 3;
echo numberOfWays( $x ) ;
// This code is contributed by Sam007
?>


Javascript

<script>
// Number of ways in which
// participant can take part.
function numberOfWays( x)
{
let dp = Array(x + 1).fill(0);
dp[0] = dp[1] = 1;
for ( i = 2; i <= x; i++)
dp[i] = dp[i - 1] + (i - 1) * dp[i - 2];
return dp[x];
}
// Driver code
let x = 3;
document.write(numberOfWays(x));
// This code is contributed by gauravrajput1
</script>


输出:

4

本文由 尼金古·阿加瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享