> 백엔드 개발 > C++ > 본문

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

王林
풀어 주다: 2023-08-25 11:41:24
앞으로
1506명이 탐색했습니다.

使用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 <= n - x를 충족합니다. - y(여기서 z는 분리된 변수입니다). 여기서 0 <= z <= Z입니다(다른 분리된 변수에도 동일하게 적용됩니다). <= n - x - y(这里z是被分离的变量),其中0 <= 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿