>백엔드 개발 >C++ >C++ 프로그래밍을 사용하여 정류장 수를 찾아보세요.

C++ 프로그래밍을 사용하여 정류장 수를 찾아보세요.

WBOY
WBOY앞으로
2023-09-20 15:13:011308검색

X 지점과 Y 지점 사이에 n개의 중간 기차역이 있습니다. 기차가 s개의 역에 정차하여 두 역이 서로 인접하지 않도록 배열할 수 있는 다양한 방법의 수를 계산하십시오. 따라서 이 글에서는 정류장 수를 알아내는 다양한 방법을 설명하겠습니다. 이 문제를 보면 기차가 s개의 역에 정차할 수 있는 조합을 찾아야 함을 알 수 있습니다.

문제 해결 방법

예를 들어 보겠습니다. 중간 역이 8개 있고 중간 역 3개에서 기차를 멈출 방법을 찾아야 합니다.

n = 8, s = 3

또한 (n - s)개의 역이 있습니다. 즉, 기차가 멈출 수 없는 5개의 역,

C++ 프로그래밍을 사용하여 정류장 수를 찾아보세요.

기차가 멈출 수 없는 5개의 역 A, B, C, D, E가 있습니다. 이제 두 정거장이 연속되지 않도록 3개의 정거장을 배열할 수 있는 6개의 점이 있습니다. 따라서 경로 수는 -

6<sub>c<sub>3</sub></sub>= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20

X 지점과 Y 지점에서 세 정거장을 예약하는 방법은 20가지입니다. 예는 다음과 같습니다.

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

Example

중국어 번역은 다음과 같습니다.

Example

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n = 8, s = 3;
    int flag1 = 1, flag2 = 1, temp = s, ans;
    // selecting &#39;s&#39; positions out of &#39;n-s+1&#39;
    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;
}

Output

Number of ways : 20

위 코드 설명

이 C++ 코드를 이해하기 위해 솔루션을 여러 단계로 나눌 수 있습니다.

  • n의 역 수와 s의 정차 역을 입력으로 사용합니다.

  • flag1 및 flag 2 변수를 1로 초기화하고 s 값을 임시 변수에 저장합니다.

  • 분자 [fact(n) -fact(r)]인 flag1을 계산합니다.

  • 분모 [fact(r)]인 flag2를 계산하고

  • 결과를 인쇄하세요.

결론

이 기사에서는 두 역이 연속되지 않도록 기차가 중간 역에 정차할 수 있는 방법의 수를 찾는 문제를 해결했습니다. 우리는 또한 이 문제를 해결하기 위한 C++ 프로그램과 이 문제를 해결하는 완전한 방법을 배웠습니다. C, Java, Python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다.

위 내용은 C++ 프로그래밍을 사용하여 정류장 수를 찾아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제