> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 프로그램은 숫자를 회전시켜 모든 배열 요소를 pronic 숫자로 변환할 수 있는지 확인합니다.

JavaScript 프로그램은 숫자를 회전시켜 모든 배열 요소를 pronic 숫자로 변환할 수 있는지 확인합니다.

PHPz
풀어 주다: 2023-09-17 17:05:02
앞으로
1208명이 탐색했습니다.

JavaScript 程序检查所有数组元素是否可以通过旋转数字转换为 pronic 数

플로닉 수는 연속된 두 수의 배수라고도 합니다. 우리는 정수 배열을 얻을 것이고 모든 조합을 얻기 위해 숫자를 특정 방향으로 특정 횟수만큼 회전할 수 있습니다. 숫자를 회전하여 생성된 조합의 경우 각 배열 요소를 Plonik 숫자로 변환할 수 있으면 true를 인쇄하고, 그렇지 않으면 false를 인쇄합니다.

프로닉 숫자

먼저 양성자 수에 대해 논의해 보겠습니다. 양성자 수는 연속된 두 숫자의 곱입니다.

수학적으로 말하면, 다음 연속 숫자가 x+1인 정수 x가 있고 숫자 k가 두 숫자의 곱이라고 하면 k = (x)*(x+1)을 의미합니다. Pronic 숫자의 몇 가지 예는 다음과 같습니다.

  • 0은 0과 1의 곱입니다.

  • 1은 1과 2의 산물입니다.

  • 6은 2와 3의 산물입니다.

-> 12, 20, 30, 42, 56, 72, 90, 110, 132, 156, 182, 210, 240, 272 등

배열이 있다고 가정해 보겠습니다.

{ 21, 65, 227, 204, 2}

출력: 예

설명:

0번째 지수: 21의 경우 한 회전은 3과 4의 곱인 12로 변환되므로 플랑크 수가 됩니다.

첫 번째 인덱스: 65의 경우 한 번 회전하면 7과 8의 곱인 56으로 변환될 수 있으므로 플로닉 수입니다.

두 번째 지수: 227의 경우 한 바퀴 회전하면 272로 변환할 수 있는데, 이는 대명수입니다.

마찬가지로 204부터 420까지이고 2 자체가 양성자수입니다.

방법

코드 예제를 살펴보았습니다. 이제 단계를 살펴보겠습니다.

  • 먼저, 주어진 숫자를 회전시키는 함수를 정의하겠습니다. 정수가 인수로 전달되고 문자열로 변환됩니다.

  • 하위 문자열 방법을 사용하여 문자열을 오른쪽으로 회전한 다음 다시 숫자로 다시 변환합니다.

  • 현재 숫자가 프로닉인지 확인하는 프로닉 함수를 정의하겠습니다.

  • 현재 숫자의 제곱근의 하한을 구하고 여기에 연속된 숫자를 곱하여 현재 숫자가 양성자인지 확인합니다.

  • 현재 숫자의 자릿수를 문자열로 변환하여 구하는 함수를 정의하겠습니다.

  • 주 함수에서는 배열을 반복하고 각 요소에 대해 길이만큼 또는 Pronic 수를 찾을 때까지 회전합니다.

  • 모든 반복 후에 pronic 숫자가 아닌 숫자를 발견하고 이를 pronic 숫자로 변환할 수 없으면 yes를 인쇄하지 않습니다.

아래 예에서는 숫자를 회전시켜 모든 배열 요소를 플로닉 숫자로 변환할 수 있는지 확인합니다. 입력 및 예상 출력은 다음과 같습니다.

입력: 배열 = [21, 65, 227, 204, 2]

예상 출력: 예

으아악

출력

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N)입니다. 여기서 N은 배열의 크기입니다. 여기서 우리는 배열을 반복하고 제곱근을 취하기 위한 추가 숫자 크기의 로그 인수를 얻습니다. 그러나 주어진 정수의 최대 길이가 매우 작기 때문에 선형 시간 복잡도에 영향을 주지 않습니다.

여기서 추가 공간을 사용하지 않기 때문에 위 코드의 공간 복잡도는 일정하거나 O(1)입니다.

결론

이 튜토리얼에서는 단순히 숫자를 왼쪽이나 오른쪽으로 회전하여 배열의 각 요소를 pronic 숫자로 변환하여 날씨를 찾는 JavaScript 프로그램을 구현했습니다. 우리는 숫자를 회전하고, 양성자인지 확인하고, 자릿수를 구하는 몇 가지 함수를 정의했습니다. 위 코드의 시간복잡도는 O(N), 공간복잡도는 O(1)이다.

위 내용은 JavaScript 프로그램은 숫자를 회전시켜 모든 배열 요소를 pronic 숫자로 변환할 수 있는지 확인합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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