플로닉 수는 연속된 두 수의 배수라고도 합니다. 우리는 정수 배열을 얻을 것이고 모든 조합을 얻기 위해 숫자를 특정 방향으로 특정 횟수만큼 회전할 수 있습니다. 숫자를 회전하여 생성된 조합의 경우 각 배열 요소를 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!