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

王林
Lepaskan: 2023-08-25 11:41:24
ke hadapan
1506 orang telah melayarinya

使用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
Salin selepas log masuk

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 <= n - x - y ( Di sini z ialah pembolehubah dipisahkan), di mana 0 <= z <= Z (begitu juga dengan pembolehubah dipisahkan yang lain). <= n - x - y(这里z是被分离的变量),其中0 <= z <= 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";
}
Salin selepas log masuk

Output

17
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan