Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan pengaturcaraan C++, cari bilangan penyelesaian bagi persamaan x + y + z <= n

Menggunakan pengaturcaraan C++, cari bilangan penyelesaian bagi persamaan x + y + z <= n

王林
王林ke hadapan
2023-08-25 11:41:241502semak imbas

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

Dalam artikel ini, kami akan menerangkan kaedah bagaimana untuk mencari penyelesaian bagi persamaan x+y+z<=n. Dalam masalah ini, kita mempunyai persamaan dengan empat pembolehubah dan tugasnya adalah untuk mencari penyelesaian bagi persamaan yang diberikan. Jadi berikut ialah contoh mudah&miuns;

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

Output: 4

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

Output: 3

Dalam masalah ini, kita hanya boleh melingkari semua nilai (x, y), (y,z), (x, z).

Penyelesaian

Kini kita akan menggunakan kaedah brute force untuk mencari penyelesaian kepada masalah yang diberikan.

Kaedah brute force

Dalam atur cara ini, kita akan mengulangi semua kemungkinan nilai (x,y), (y,z) dan (x,z) supaya ia memenuhi persamaan z

Contoh


#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

Penjelasan program di atas

Dalam atur cara ini, kita akan menggunakan gelung bersarang untuk melintasi semua (x,y), (y,z) dan (x,z) Gabungkan, dan semak sama ada persamaan itu memenuhi syarat, dan jika ya, tambahkan jawapannya.

Kesimpulan

Dalam artikel ini, kami menyelesaikan masalah untuk mencari bilangan penyelesaian yang memenuhi persamaan x + y + z<= n dengan kerumitan masa O(X*Y). Kami juga mempelajari program C++ untuk menyelesaikan masalah ini dan penyelesaian lengkap. Kita boleh menulis program yang sama dalam bahasa lain seperti C, Java, Python dan lain-lain.

Atas ialah kandungan terperinci Menggunakan pengaturcaraan C++, cari bilangan penyelesaian bagi persamaan x + y + z <= n. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam