> 백엔드 개발 > C++ > 2차원 평면에서 원점에서 (d, 0) 지점에 도달하는 데 필요한 점프 횟수

2차원 평면에서 원점에서 (d, 0) 지점에 도달하는 데 필요한 점프 횟수

王林
풀어 주다: 2023-09-05 22:41:06
앞으로
1343명이 탐색했습니다.

在二维平面上,从原点到达点(d, 0)所需的跳跃次数

이 기사에서는 흥미로운 분석 문제, 즉 고정 점프 길이가 지정된 2D 평면의 원점에서 (d, 0) 지점에 도달하는 데 필요한 점프 수에 대한 가능한 솔루션에 대해 논의합니다. 고정된 점프 길이와 목표 좌표를 사용하여 필요한 최소 점프 수를 찾습니다.

입력 및 출력 시나리오

점프 길이가 a 또는 b일 수 있고 목표 지점이 (d,0)이라고 가정합니다. 주어진 출력은 목표에 도달하는 데 필요한 최소 점프 횟수입니다.

으아악

당신이 2D 평면의 원점(0, 0)에 서 있다고 가정합니다. 목표 좌표는 (d, 0)입니다. 목표 좌표에 도달하는 유일한 방법은 고정 길이 점프를 하는 것입니다. 당신의 목표는 최소한의 점프 횟수로 목표를 달성할 수 있는 효율적인 방법을 찾는 것입니다.

If 문을 사용하세요

if 문을 사용하여 (d, 0)에 도달하는 데 필요한 최소 점프 수를 찾습니다.

  • 먼저 a가 항상 b보다 큰지 확인해야 합니다. 그러면 a는 더 긴 점프 길이를 나타내고 b b>는 더 짧은 점프 길이를 나타냅니다. 따라서 b > a, 이면 ab의 최대값을 a에 할당합니다.

  • 다음으로 d가 a보다 크거나 같은지 확인합니다. 이 조건이 충족되면 최소 점프 수를 (d + a - 1) / a로 간단하게 계산할 수 있습니다. 여기서 (d + a - 1)은 점프 길이 "a"를 a(즉, 각 점프의 길이)로 나눈 총 거리를 의미하며 점프 횟수를 제공합니다.

  • d = 0이면 점프가 필요하지 않습니다.

  • 만약 d = b이면 b 길이로 점프하여 바로 지점에 도달할 수 있습니다.

  • d > bd 인 경우 최소 점프 횟수는 2입니다. X가 원점, Z가 목표점, Y가 XY = YZ = max(a, b)를 만족하는 점인 삼각형 XYZ를 취하기 때문입니다. 그러면 최소 점프는 2가 됩니다. 즉, X 에서 Y Y 에서 Z까지입니다.

으아악

출력

으아악

나눗셈 및 모듈로 연산자 사용

a 또는 b의 값이 0인 경우 나누기 및 모듈로 연산자를 사용하여 최소 점프 수를 찾을 수 있습니다. 여기서는 거리 d를 홉 길이(홉 길이 중 하나가 0이므로)로 나누어 홉 수를 구합니다.

으아악

출력

으아악

NOTE - 삼항 연산자를 사용하여 코드를 간결하게 작성할 수도 있습니다.

으아악

결론

2D 평면에서 원점으로부터 목표점(d,0)까지 도달하는데 필요한 최소 점프 횟수를 구하는 방법에 대해 논의했습니다. if 문을 사용하여 a b 의 0이 아닌 값에 대한 점프 수를 찾습니다(a b b>는 점프 길이입니다). a 또는 b가 0이면 나누기 및 모듈로 연산자를 사용할 수 있습니다. 코드를 간결하게 작성하려면 삼항 연산자를 사용할 수 있습니다.

위 내용은 2차원 평면에서 원점에서 (d, 0) 지점에 도달하는 데 필요한 점프 횟수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿