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

ค้นหาจำนวนสถานีหยุดโดยใช้ C++


มีสถานีรถไฟกลางจำนวน n แห่งระหว่างจุด X และ Y นับจำนวนวิธีต่างๆ ที่รถไฟสามารถจัดให้จอดที่สถานีต่างๆ ได้ เพื่อไม่ให้มีสถานีสองแห่งอยู่ติดกัน ดังนั้นในบทความนี้ เราจะอธิบายทุกแนวทางที่เป็นไปได้เพื่อค้นหาจำนวนสถานีที่หยุดรถ เมื่อพิจารณาจากปัญหาแล้ว เราจะพบว่าต้องหาชุดค่าผสมที่สามารถหยุดรถไฟได้ตามจำนวนสถานี

แนวทางการแก้ปัญหา

มาดูตัวอย่างกันว่ามีสถานีกลางแปดแห่งและเราต้องหาวิธีที่จะหยุดรถไฟที่สถานีกลางสามสถานี

n = 8, s = 3

เรามี (n - s) คือ เหลืออีกห้าสถานีที่รถไฟไม่สามารถหยุดได้

ค้นหาจำนวนสถานีหยุดโดยใช้ C++

เรามีห้าสถานี A, B, C, D, E ซึ่งรถไฟไม่สามารถหยุดได้ ตอนนี้ เรามีจุดจุดหกจุดเพื่อจัดสถานีหยุดสามแห่ง เพื่อไม่ให้มีสถานีสองแห่งติดต่อกัน ดังนั้น จำนวนวิธีคือ −

6c3= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20

มี 20 วิธีในการจัดเรียงสถานีหยุดสามแห่งจากจุด X และ Y ดังนั้นนี่คือตัวอย่าง −

Input : n = 15 s = 4
Output : 495
Input : n = 8 s = 3
Output : 20

ตัวอย่าง

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n = 8, s = 3;
    int flag1 = 1, flag2 = 1, temp = s, ans;
    // selecting 's' positions out of 'n-s+1'
    int x = n - s + 1;
    while (x != (n - 2 * s + 1)) {
       flag1 = flag1 * x;
       x--;
    }
    while (temp != 1) {
       flag2 = flag2 * temp;
       temp--;
    }
    ans = flag1 / flag2;
    if ((n - s + 1) >= s)
       cout << "Number of ways : " << ans;
    else
       cout << "not possible to find";
    return 0;
}

ผลลัพธ์

Number of ways : 20

คำอธิบายของโค้ดด้านบน

เพื่อให้เข้าใจโค้ด C++ นี้ เราสามารถแบ่งโซลูชันออกเป็นขั้นตอนได้

  • การนับจำนวนสถานีใน n และสถานีหยุดใน s เป็นอินพุต

  • การเริ่มต้นตัวแปร flag1 และ flag 2 ด้วย 1 และเก็บค่าของ s ไว้ในตัวแปร temp

  • กำลังคำนวณ flag1 ซึ่งเป็นตัวเศษ [fact(n) - fact(r)].

  • กำลังคำนวณ flag2 ซึ่งเป็นตัวส่วน [fact(r)]

  • ผลการพิมพ์

บทสรุป

ในบทความนี้ เราแก้ปัญหาเพื่อค้นหาจำนวนวิธีที่รถไฟสามารถหยุดบนสถานีกลางได้ โดยจะไม่มีสองสถานีต่อเนื่องกัน นอกจากนี้เรายังได้เรียนรู้โปรแกรม C ++ สำหรับปัญหานี้และแนวทางที่สมบูรณ์ซึ่งเราแก้ไขปัญหานี้ เราสามารถเขียนโปรแกรมเดียวกันในภาษาอื่นๆ เช่น C, java, python และภาษาอื่นๆ