📜  将N写为三个数字的总和的方法计数

📅  最后修改于: 2021-04-24 16:12:10             🧑  作者: Mango

给定正整数N ,计算将N写入三个数字之和的方式数。对于无法表达的数字,请打印-1。
例子:

方法:如果我们仔细研究一下,就可以解决上述问题,我们将在解决问题的方式中观察到一个模式。对于这一切是大于2的数字,我们得到了一系列的3,6,10,15,25等,这只不过是第一N-1的自然数总和
下面是上述方法的实现:

C++
// C++ program to count the total number of
// ways to write N as a sum of three numbers
 
#include 
using namespace std;
 
// Function to find the number of ways
void countWays(int n)
{
    // Check if number is less than 2
    if (n <= 2)
        cout << "-1";
 
    else {
        // Calculate the sum
        int ans = (n - 1) * (n - 2) / 2;
 
        cout << ans;
    }
}
 
// Driver code
int main()
{
    int N = 5;
 
    countWays(N);
 
    return 0;
}


Java
// Java program to count the total number of
// ways to write N as a sum of three numbers
class GFG{
 
// Function to find the number of ways
static void countWays(int n)
{
     
    // Check if number is less than 2
    if (n <= 2)
    {
        System.out.print("-1");
    }
    else
    {
         
        // Calculate the sum
        int ans = (n - 1) * (n - 2) / 2;
        System.out.print(ans);
    }
}
 
// Driver code
public static void main(String[] args)
{
    int N = 5;
    countWays(N);
}
}
 
// This code is contributed by Amit Katiyar


Python3
# Python3 program to count the total number of
# ways to write N as a sum of three numbers
def countWays(N):
 
    # Check if number is less than 2
    if (N <= 2):
        print("-1")
    else:
         
        # Calculate the sum
        ans = (N - 1) * (N - 2) / 2
         
    print(ans)
 
# Driver code
if __name__ == '__main__':
     
    N = 5
    countWays(N)
 
# This code is contributed by coder001


C#
// C# program to count the total number of
// ways to write N as a sum of three numbers
using System;
 
class GFG{
     
// Function to find the number of ways
static void countWays(int n)
{
         
    // Check if number is less than 2
    if (n <= 2)
    {
        Console.WriteLine("-1");
    }
    else
    {
 
        // Calculate the sum
        int ans = (n - 1) * (n - 2) / 2;
        Console.WriteLine(ans);
    }
}
 
// Driver code    
static void Main()
{
    int N = 5;
    countWays(N);
}
}
 
// This code is contributed by divyeshrabadiya07


Javascript


输出:
6

时间复杂度: O(1)