📌  相关文章
📜  N可以分成四部分来构造一个矩形的方法数

📅  最后修改于: 2021-10-23 08:15:45             🧑  作者: Mango

给定一个整数N ,任务是将数字分成四部分,这样划分的部分可以用来构造矩形而不是正方形。找出有多少种方式,以便可以将数字除以满足条件。
例子:

方法:由于数字必须被划分为由四个部分组成的矩形,所以如果数字是奇数,那么路数将为零,因为矩形的周长总是偶数
现在,如果n 是偶数,那么只有(n – 2) / 4种方法可以将数字除以,例如,
如果 8 必须分成四部分,那么只有(8 – 2) / 4 = 1 种方式,即[1, 1, 3, 3] ,没有其他方式。这是因为你只能取边长 < = n/2 – 1来形成一个有效的矩形,并且从这些n/2 – 1 个矩形计数再次除以 2 以避免重复计算。
下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to return the
// required number of ways
int cntWays(int n)
{
    if (n % 2 == 1) {
        return 0;
    }
    else {
        return (n - 2) / 4;
    }
}
 
// Driver code
int main()
{
    int n = 18;
 
    cout << cntWays(n);
 
    return 0;
}


Java
// Java implementation of the approach
class GFG
{
     
    // Function to return the
    // required number of ways
    static int cntWays(int n)
    {
        if (n % 2 == 1)
        {
            return 0;
        }
        else
        {
            return (n - 2) / 4;
        }
    }
     
    // Driver code
    public static void main (String[] args)
    {
        int n = 18;
     
        System.out.println(cntWays(n));
 
    }
}
 
// This code is contributed by AnkitRai01


Python3
# Python 3 implementation of the approach
 
# Function to return the
# required number of ways
def cntWays(n) :
    if n % 2 == 1 :
        return 0
    else:
        return (n - 2) // 4
         
# Driver code
n = 18
print(cntWays(n))
 
# This code is contributed by
# divyamohan123


C#
// C# implementation of the approach
using System;
     
class GFG
{
     
    // Function to return the
    // required number of ways
    static int cntWays(int n)
    {
        if (n % 2 == 1)
        {
            return 0;
        }
        else
        {
            return (n - 2) / 4;
        }
    }
     
    // Driver code
    public static void Main (String[] args)
    {
        int n = 18;
     
        Console.WriteLine(cntWays(n));
    }
}
 
// This code is contributed by 29AjayKumar


Javascript


输出:
4

时间复杂度: O(1)