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

王林
Libérer: 2023-08-25 11:41:24
avant
1564 Les gens l'ont consulté

使用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
Copier après la connexion

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 <= n - x - y (Ici z est la variable séparée), où 0 <= z <= Z (il en va de même pour les autres variables séparées). <= n - x - y(这里z是被分离的变量),其中0 <= z <= 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";
}
Copier après la connexion

Sortie

17
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal