对于给定的数字n(n> 1),我们需要找到多种方法来制作长度为n的双音阵列,其中包括从1到n的所有元素。
注意:[1,2,…n]和[n,n – 1…2,1]不被视为双音阵列。
例子 :
Input : n = 3
Output : 2
Explanation : [1, 3, 2] & [2, 3, 1]
are only two ways of bitonic array
formation for n = 3.
Input : n = 4
Output : 6
为了创建一个双音数组,假设我们有一个长度为n的空数组,并且我们希望以双音形式将1到n的数字放入该数组中,现在,我们想将数字1加起来,只有放置数字1的2种可能方法都是结束位置,因为如果我们将1放置在端点之外的任何位置,则数字1的两边都大于1。之后,我们可以想象有一个数组长度n-1,现在我们要放入数字2,同样出于相同的原因,我们有两种方法,依此类推,直到我们要放入数字n,我们只有1种方法而不是2,所以我们有n -1个数字有2种放置方式,因此根据组合运算的乘法规则,答案为2 ^ n-1,最后我们应从答案中减去2,因为排列为1 2 3 4…。 n和n n-1…3 2 1不应计算在内。
C++
// C++ program for finding
// total bitonic array
#include
using namespace std;
// Function to calculate no. of ways
long long int maxWays( int n)
{
// return (2^(n - 1)) -2
return (pow(2, n - 1) - 2);
}
// Driver Code
int main()
{
int n = 6;
cout << maxWays(n);
return 0;
}
Java
// Java program for finding
// total bitonic array
class GFG
{
// Function to calculate no. of ways
static int maxWays( int n)
{
// return (2 ^ (n - 1)) -2
return (int)(Math.pow(2, n - 1) - 2);
}
// Driver Code
public static void main (String[] args)
{
int n = 6;
System.out.print(maxWays(n));
}
}
// This code is contributed by Anant Agarwal.
Python3
# python program for finding
# total bitonic array
# Function to calculate no. of ways
def maxWays(n):
# return (2^(n - 1)) -2
return (pow(2, n - 1) - 2);
# Driver Code
n = 6;
print(maxWays(n))
# This code is contributed by Sam007
C#
// C# program for finding
// total bitonic array
using System;
class GFG
{
// Function to calculate no. of ways
static int maxWays( int n)
{
// return (2 ^ (n - 1)) -2
return (int)(Math.Pow(2, n - 1) - 2);
}
// Driver Code
public static void Main ()
{
int n = 6;
Console.Write(maxWays(n));
}
}
// This code is contributed by nitin mittal.
PHP
输出:
30