Number of solutions for the equation x + y + z <= n

25 May, 2022
Given four numbers x, y, z, n. The task is to find the number of solutions for the equation x + y + z <= n, such that 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.
Examples: 
Input: x = 1, y = 1, z = 1, n = 1
Output: 4

Input: x = 1, y = 2, z = 3, n = 4
Output: 20
Approach: Let’s iterate explicitly over all possible values of x and y (using nested loop). For one such fixed values of x and y, the problem reduces to how many values of z are there such that z <= n – x – y and 0 <= z <= Z. 
Below is the required implementation to find the number of solutions: 
C++
C
Java
Python 3
C#
PHP
Javascript
// CPP program to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.#include <bits/stdc++.h>using namespace std; // function to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.int NumberOfSolutions(int x, int y, int z, int n){    // to store answer    int ans = 0;     // for values of x    for (int i = 0; i <= x; i++) {         // for values of y        for (int j = 0; j <= y; j++) {             // maximum possible value of z            int temp = n - i - j;             // if z value greater than equals to 0            // then only it is valid            if (temp >= 0) {                 // find minimum of temp and z                temp = min(temp, z);                ans += temp + 1;            }        }    }     // return required answer    return ans;} // Driver codeint main(){    int x = 1, y = 2, z = 3, n = 4;     cout << NumberOfSolutions(x, y, z, n);     return 0;}
// C program to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.#include <stdio.h> int min(int a, int b){  int min = a;  if(min > b)    min = b;  return min;} // function to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.int NumberOfSolutions(int x, int y, int z, int n){    // to store answer    int ans = 0;     // for values of x    for (int i = 0; i <= x; i++) {         // for values of y        for (int j = 0; j <= y; j++) {             // maximum possible value of z            int temp = n - i - j;             // if z value greater than equals to 0            // then only it is valid            if (temp >= 0) {                 // find minimum of temp and z                temp = min(temp, z);                ans += temp + 1;            }        }    }     // return required answer    return ans;} // Driver codeint main(){    int x = 1, y = 2, z = 3, n = 4;       printf("%d",NumberOfSolutions(x, y, z, n));     return 0;} // This code is contributed by kothavvsaakash.
// Java program to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z. import java.io.*; class GFG { // function to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.static int NumberOfSolutions(int x, int y, int z, int n){    // to store answer    int ans = 0;     // for values of x    for (int i = 0; i <= x; i++) {         // for values of y        for (int j = 0; j <= y; j++) {             // maximum possible value of z            int temp = n - i - j;             // if z value greater than equals to 0            // then only it is valid            if (temp >= 0) {                 // find minimum of temp and z                temp = Math.min(temp, z);                ans += temp + 1;            }        }    }     // return required answer    return ans;}        // Driver code    public static void main (String[] args) {         int x = 1, y = 2, z = 3, n = 4;    System.out.println( NumberOfSolutions(x, y, z, n));     }} // this code is contributed by anuj_67..
# Python3 program to find the number # of solutions for the equation# x + y + z <= n, such that# 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z. # function to find the number of solutions# for the equation x + y + z <= n, such that# 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.def NumberOfSolutions(x, y, z, n) :     # to store answer    ans = 0     # for values of x    for i in range(x + 1) :         # for values of y        for j in range(y + 1) :             # maximum possible value of z            temp = n - i - j             # if z value greater than equals             # to 0 then only it is valid            if temp >= 0 :                 # find minimum of temp and z                temp = min(temp, z)                ans += temp + 1     # return required answer    return ans # Driver codeif __name__ == "__main__" :     x, y, z, n = 1, 2, 3, 4         # function calling    print(NumberOfSolutions(x, y, z, n)) # This code is contributed by ANKITRAI1
// C# program to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.using System; public class GFG{          // function to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.static int NumberOfSolutions(int x, int y, int z, int n){    // to store answer    int ans = 0;     // for values of x    for (int i = 0; i <= x; i++) {         // for values of y        for (int j = 0; j <= y; j++) {             // maximum possible value of z            int temp = n - i - j;             // if z value greater than equals to 0            // then only it is valid            if (temp >= 0) {                 // find minimum of temp and z                temp = Math.Min(temp, z);                ans += temp + 1;            }        }    }     // return required answer    return ans;} // Driver code               static public void Main (){             int x = 1, y = 2, z = 3, n = 4;     Console.WriteLine( NumberOfSolutions(x, y, z, n));     }} // This code is contributed by anuj_67..
<?php// PHP program to find the number// of solutions for the equation// x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z. // function to find the number of// solutions for the equation// x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.function NumberOfSolutions($x, $y, $z, $n){    // to store answer    $ans = 0;     // for values of x    for ($i = 0; $i <= $x; $i++)    {         // for values of y        for ($j = 0; $j <= $y; $j++)        {             // maximum possible value of z            $temp = $n - $i - $j;             // if z value greater than equals            // to 0 then only it is valid            if ($temp >= 0)            {                 // find minimum of temp and z                $temp = min($temp, $z);                $ans += $temp + 1;            }        }    }     // return required answer    return $ans;} // Driver code$x = 1; $y = 2;$z = 3; $n = 4; echo NumberOfSolutions($x, $y, $z, $n); // This code is contributed// by Akanksha Rai(Abby_akku)?>
<script> // Javascript program to find the number// of solutions for the equation x + y + z <= n,// such that 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z. // Function to find the number of solutions for// the equation x + y + z <= n, such that// 0 <= x <= X, 0 <= y <= Y, 0 <= z <= Z.function NumberOfSolutions(x, y, z, n){         // To store answer    var ans = 0;     // for values of x    for(var i = 0; i <= x; i++)    {                 // for values of y        for(var j = 0; j <= y; j++)        {                         // Maximum possible value of z            var temp = n - i - j;             // If z value greater than equals to 0            // then only it is valid            if (temp >= 0)            {                                 // Find minimum of temp and z                temp = Math.min(temp, z);                ans += temp + 1;            }        }    }         // Return required answer    return ans;} // Driver Codevar x = 1, y = 2, z = 3, n = 4; document.write(NumberOfSolutions(x, y, z, n)); // This code is contributed by Ankita saini     </script>
20
 
vt_m
ankthon
Akanksha_Rai
ankita_saini
kothavvsaakash
Competitive Programming
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Count of strings whose prefix match with the given string to a given length k
Most important type of Algorithms
The Ultimate Beginner's Guide For DSA
Find two numbers from their sum and XOR
Equal Sum and XOR of three Numbers
Program for Fibonacci numbers
Set in C++ Standard Template Library (STL)
Write a program to print all permutations of a given string
C++ Data Types
Merge two sorted arrays