>  기사  >  백엔드 개발  >  악수 횟수, 각 사람은 한 번만 악수합니다.

악수 횟수, 각 사람은 한 번만 악수합니다.

王林
王林앞으로
2023-08-29 18:57:03675검색

악수 횟수, 각 사람은 한 번만 악수합니다.

당신이 사교 모임에 참석하고 있다고 가정해 보세요. 악수를 한 번만 하면 악수를 몇 번이나 할 수 있는지 계산할 수 있나요? 이 질문은 당신에게 흥미로울 수 있습니다. 이 문제는 순열과 조합의 수학적 방법을 사용하여 해결할 수 있습니다. 그러나 수학 연산에는 시간이 많이 걸릴 수 있습니다.

이 기사에서는 C++를 사용하여 이 문제를 해결하는 방법에 대해 설명합니다. 수학 공식, 재귀 및 기타 조합 기술을 포함한 다양한 접근 방식을 살펴보겠습니다.

입력 및 출력 시나리오

모임에 N명의 사람들이 있다고 가정해 보겠습니다. 한 사람이 한 번만 악수할 수 있도록 가능한 악수 횟수를 계산하려고 합니다.

으아아아

악수 공식 사용하기

N명이 모인 곳에서 악수한 횟수를 구하는 공식은 −

으아아아

N명의 각 사람은 (N-1)명의 개인(본인 제외)과 악수를 하게 되며, 두 개인 간의 악수는 두 번 계산되지 않습니다.

예를 들어 인원이 14명이라면 악수 횟수는

으아아아

아래 예에서는 공식을 사용하여 악수 횟수를 계산하고 있습니다. 여기서는 간단히 수학 연산자를 사용하여 파티에 참석한 사람의 수를 입력합니다.

으아아아

출력

으아아아

for 루프를 사용하세요

여기에서는 1부터 'N-1'까지 반복하고 모든 값을 더하여 악수 횟수를 계산합니다.

으아아아

출력

으아아아

재귀 사용

재귀를 사용하여 악수 횟수를 계산할 수 있습니다. 이렇게 하면 한 번에 한 사람씩 고려하여 문제를 더 작은 문제로 나눌 수 있습니다.

으아아아

출력

으아아아

While 루프 사용

여기에서는 감소하는 카운터가 있는 while 루프를 사용하여 악수 횟수를 계산했습니다. 루프는 총 사람 수로 시작한 다음 각 반복 후에 카운터를 하나씩 감소시킵니다.

으아아아

출력

으아아아

동적 프로그래밍 사용

여기에서는 계산을 위해 동적 프로그래밍을 사용했습니다.

  • 악수 횟수를 저장하려면 '

    dp' 벡터를 초기화하세요.

  • 1에서 N까지 반복합니다. 각 반복에서 이전 핸드셰이크의 합과 현재 개인 수에서 1을 뺀 값으로 악수 횟수를 선언합니다.

으아아아

출력

으아아아

참고 이 방법은 중복 계산을 방지하는 데 도움이 됩니다. 여기서는 이전에 계산된 값을 "dp" 벡터에 저장합니다. 이 값은 언제든지 액세스하고 재사용할 수 있습니다. 이는 알고리즘을 효율적으로 만들고 전체 계산 시간을 줄입니다.

결론

우리는 한 사람이 단 한 번만 해야 하는 악수 횟수를 계산하는 다양한 방법을 논의했습니다. 이러한 방법에는 수식 계산을 위한 수학 연산자 사용, for 루프, 재귀, while 루프 및 동적 프로그래밍 사용이 포함됩니다. 각 방법에는 장점이 있습니다. 동적 프로그래밍은 문제 해결에 대한 보다 체계적이고 체계적인 접근 방식입니다. 특정 요구 사항에 따라 두 방법 중 하나를 사용할 수 있습니다.

위 내용은 악수 횟수, 각 사람은 한 번만 악수합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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