Maison >développement back-end >C++ >À l'aide de la programmation C++, trouvez le nombre de solutions de l'équation x + y + z <= n

À l'aide de la programmation C++, trouvez le nombre de solutions de l'équation x + y + z <= n

王林
王林avant
2023-08-25 11:41:241531parcourir

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

Dans cet article, nous expliquerons la méthode pour trouver la solution de l'équation x+y+z<=n. Dans ce problème, nous avons une équation à quatre variables et la tâche consiste à trouver la solution de l’équation donnée. Voici donc un exemple simple&miuns;

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

Output: 4

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

Output: 3

Dans ce problème, nous pouvons simplement parcourir toutes les valeurs (x, y), (y, z), (x, z).

Solution

Nous allons maintenant utiliser la méthode de la force brute pour trouver la solution au problème donné.

Méthode de la force brute

Dans ce programme, nous allons parcourir toutes les valeurs possibles de (x,y), (y,z) et (x,z) afin qu'elles satisfassent l'équation z

Exemple


#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";
}

Sortie

17

Explication du programme ci-dessus

Dans ce programme, nous utiliserons une boucle for imbriquée pour parcourir tous les (x,y), (y,z) et (x,z) Combiner, et vérifiez si l'équation satisfait à la condition, et si oui, ajoutez la réponse.

Conclusion

Dans cet article, nous avons résolu un problème pour trouver le nombre de solutions qui satisfont l'équation x + y + z<= n avec une complexité temporelle de O(X*Y). Nous avons également appris un programme C++ pour résoudre ce problème et une solution complète. Nous pouvons écrire le même programme dans d'autres langages comme C, Java, Python et autres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer