对于给定的数字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加起来,只有2种可能的方式将数字1都放置在端点位置,因为如果我们将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
Javascript
输出:
30