给定四个数字x,y,z,n。任务是找到方程x + y + z <= n的解数,以使0 <= x <= X,0 <= y <= Y,0 <= z <=Z。
例子:
Input: x = 1, y = 1, z = 1, n = 1
Output: 4
Input: x = 1, y = 2, z = 3, n = 4
Output: 20
方法:让我们显式地迭代x和y的所有可能值(使用嵌套循环)。对于x和y的一个这样的固定值,问题减少到存在z的多少个值,使得z <= n – x – y和0 <= z <=Z。
以下是查找解决方案数量所需的实现:
C++
// 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
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 code
int main()
{
int x = 1, y = 2, z = 3, n = 4;
cout << NumberOfSolutions(x, y, z, n);
return 0;
}
Java
// 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..
Python 3
# 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 code
if __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#
// 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
= 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)
?>
Javascript
输出:
20
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。