Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาจำนวนคำตอบของสมการ x + y + z <=n โดยใช้ C++


ในบทความนี้ เราจะอธิบายวิธีการหาจำนวนคำตอบของสมการ x+y+z<=n ในปัญหานี้ เรามีสมการที่มีตัวแปรสี่ตัว และภารกิจคือการหาคำตอบของสมการที่กำหนด นี่เป็นตัวอย่างง่ายๆ &miuns;

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) ได้โดยการแยกตัวแปรแต่ละตัวและตรวจสอบว่าตรงกับสมการหรือไม่

แนวทางในการหาแนวทางแก้ไข

ตอนนี้เราจะใช้แนวทาง Brute Force เพื่อค้นหาวิธีแก้ไขปัญหาที่กำหนด

กำลังดุร้าย

ในโปรแกรมนี้ เราจะพิจารณาค่าที่เป็นไปได้ทั้งหมดของ (x,y), (y,z) และ (x,z) เพื่อให้เป็นไปตามสมการ z <=n - x - y (ในที่นี้ z ถูกแยกออก) ) โดยที่ 0 <=z <=Z (และเหมือนกันสำหรับตัวแปรแยกอื่นๆ)

ตัวอย่าง


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

ผลลัพธ์

17

คำอธิบายของโปรแกรมข้างต้น

ในโปรแกรมนี้ เราจะพูดถึงการรวมกันทั้งหมดของ (x,y), (y, z), (x,z) โดยใช้การ nested for loop และตรวจสอบสมการว่าตรงตามสมการหรือไม่ และถ้า พอใจแล้ว เราก็เพิ่มคำตอบ

บทสรุป

ในบทความนี้ เราจะแก้ปัญหาในการค้นหาจำนวนคำตอบที่ตรงกับสมการ x + y + z<=n ใน O(X*Y) ความซับซ้อนของเวลา นอกจากนี้เรายังได้เรียนรู้โปรแกรม C ++ สำหรับปัญหานี้และแนวทางที่สมบูรณ์ซึ่งเราแก้ไขปัญหานี้ เราสามารถเขียนโปรแกรมเดียวกันในภาษาอื่นๆ เช่น C, java, python และภาษาอื่นๆ