>  기사  >  백엔드 개발  >  C++ 프로그래밍을 사용하여 방정식 x + y + z <= n에 대한 해의 수를 구합니다.

C++ 프로그래밍을 사용하여 방정식 x + y + z <= n에 대한 해의 수를 구합니다.

王林
王林앞으로
2023-08-25 11:41:241425검색

使用C++编程,找到方程x + y + z <= n的解的数量

이 글에서는 x+y+z<=n 방정식의 해를 구하는 방법에 대해 설명하겠습니다. 이 문제에는 4개의 변수가 있는 방정식이 있으며, 과제는 주어진 방정식의 해를 찾는 것입니다. 여기에 간단한 예가 있습니다.

Input: X = 1, Y = 1, Z = 1, n = 1

Output: 4

Input: X = 1, Y = 2, Z = 3, n = 4

Output: 3

이 문제에서는 모든 (x, y), (y,z), (x, z) 값을 간단히 반복할 수 있습니다.

Solution

이제 무차별 대입법을 사용하여 주어진 문제에 대한 해결책을 찾아보겠습니다.

Brute force method

이 프로그램에서는 (x,y), (y,z) 및 (x,z)의 가능한 모든 값을 반복하여 방정식 z

Example


#include<bits/stdc++.h>
using namespace std;
int main(){
    int X = 1, Y = 2, Z = 3, n = 4; // limits of x, y, z and given n.
    int answer = 0; // counter variable.
    for(int i = 0; i <= X; i++){
        for(int j = 0; j <= Y; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= Z){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    for(int i = 0; i <= X; i++){
        for(int j = 0; j <= Z; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= Y){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    for(int i = 0; i <= Z; i++){
        for(int j = 0; j <= Y; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= X){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    cout << answer << "\n";
}

Output

17

위 프로그램에 대한 설명

이 프로그램에서는 중첩된 for 루프를 사용하여 (x,y), (y,z) 및 (x,z) 결합을 모두 탐색합니다. 방정식이 조건을 만족하는지 확인하고, 그렇다면 답을 추가하세요.

결론

이 기사에서는 시간 복잡도가 O(X*Y)인 방정식 x + y + z<= n을 만족하는 해의 수를 찾는 문제를 해결했습니다. 우리는 또한 이 문제와 완전한 해결책을 해결하기 위해 C++ 프로그램을 배웠습니다. C, Java, Python 등과 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다.

위 내용은 C++ 프로그래밍을 사용하여 방정식 x + y + z <= n에 대한 해의 수를 구합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제