Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình cho sự cố số trạm dừng

Tuyên bố sự cố - Một chương trình để tìm số cách tàu sẽ dừng trong r các trạm ngoài n các trạm để không có hai trạm dừng liên tiếp.

Giải thích vấn đề

Chương trình này sẽ tính toán số cách, tức là các hoán vị mà đoàn tàu sẽ dừng lại. Tại đây, tàu sẽ đi từ điểm X đến Y . Giữa những điểm này, có n các nhà ga. Tàu sẽ dừng vào r các trạm trong số n các trạm đưa ra các điều kiện khi dừng trên r ga tàu không được dừng ở hai ga liên tiếp.

Sự hoán vị này có thể được tìm thấy bằng cách sử dụng n trực tiếp p r công thức.

Hãy lấy một vài ví dụ,

Input : n = 16 , r = 6
Output : 462

Giải thích - Số cách tàu có thể dừng ở 6 điểm dừng trong số 16 điểm dừng thỏa mãn điều kiện được tìm bằng công thức hoán vị cho bởi

n p r hoặc p (n, r) =n! ∕ (n-r)!

Thuật toán

Input  : total numbers of stations n and number of stations train can stop r.
Step 1 : For values of n and r calculate the value of p(n,r) = n! / (n-r)!
Step 2 : print the value of p(n,r) using std print method.

Ví dụ

#include<stdio.h>
int main(){
   int n = 16, s = 6;
   printf("Total number of stations = %d\nNumber of stopping station = %d\n", s, n);
   int p = s;
   int num = 1, dem = 1;
   while (p!=1) {
      dem*=p;
      p--;
   }
   int t = n-s+1;
   while (t!=(n-2*s+1)) {
      num *= t;
      t--;
   }
   if ((n-s+1) >= s)
      printf("Possible ways = %d", num / dem);
   else
      printf("no possible ways");
}

Đầu ra

Total number of stations = 16
Number of stopping station = 6
Possible ways = 462