문제 설명 - 두 개의 정수가 주어졌고 이 두 숫자가 서로 비트 루프인지 확인해야 합니다.
JavaScript에서 각 정수는 0과 1을 나타내는 32비트 이진수입니다. 여기서는 첫 번째 숫자의 32비트 문자열이 회전되었는지 확인해야 합니다. 첫 번째 숫자의 총 32회전에서 두 번째 숫자의 32비트 문자열을 가져올 수 있는지 여부를 확인해야 합니다.
toString() 메서드는 정수를 32비트 이진수 문자열로 변환하는 데 사용됩니다. 그런 다음 이진 문자열에 앞에 0을 추가하여 32비트 길이로 만들 수 있습니다. 다음으로, 숫자의 이진 문자열을 자체적으로 연결하고 두 번째 숫자의 이진 문자열이 병합된 문자열의 하위 문자열로 존재하는지 확인할 수 있습니다.
사용자는 다음 구문을 따라 연결된 문자열 뒤의 두 숫자가 서로 비트 순환인지 확인할 수 있습니다.
으아아아1단계 - toString() 메서드를 사용하고 2를 인수로 전달하여 두 숫자를 이진 문자열로 변환합니다.
2단계 - 다음으로 두 문자열의 크기를 32비트로 설정해야 합니다. 따라서 두 이진 문자열 모두에 앞에 0을 추가하십시오.
3단계 - num1의 바이너리 문자열을 자체적으로 병합합니다.
4단계 - 병합된 문자열에 num2라는 바이너리 문자열이 포함되어 있는지 확인하세요. 그렇다면 두 숫자가 서로의 비트 사이클임을 의미합니다.
아래 예에서 checkBitRotations() 함수는 위의 알고리즘을 구현하여 두 숫자가 서로 비트 회전하는지 확인합니다. 출력에서 사용자는 1과 2가 서로의 비트 사이클이지만 1과 5는 그렇지 않다는 것을 알 수 있습니다.
으아아아이 방법에서는 숫자를 이진 문자열로 변환합니다. 그런 다음 for 루프를 사용하여 첫 번째 숫자의 모든 회전을 가져오고 모든 회전을 두 번째 숫자와 비교합니다. 첫 번째 숫자의 회전이 두 번째 숫자와 일치하면 서로의 비트 회전입니다.
사용자는 아래 구문에 따라 첫 번째 숫자의 모든 회전을 두 번째 숫자와 일치시키고 서로의 비트 회전인지 확인할 수 있습니다.
으아아아위 구문에서는 첫 번째 숫자와 두 번째 숫자를 하나씩 비교하고 일치하면 true를 반환합니다.
1단계 - toString() 메서드를 사용하여 두 숫자를 이진 문자열로 변환합니다.
2단계 - 이제 앞에 0을 추가하여 길이를 동일하게 만듭니다.
3단계 - for 루프를 사용하여 첫 번째 문자열을 반복합니다.
4단계 - num1Binary가 num2Binary와 일치하면 true를 반환합니다.
5단계 - for 루프에서 첫 번째 숫자의 현재 회전이 두 번째 숫자와 일치하지 않으면 첫 번째 숫자를 회전하고 새 회전을 가져옵니다.
李>6단계 - 회전이 일치할 때까지 두 번째 회전과 다음 회전을 계속해서 일치시킵니다. 회전이 일치하지 않으면 false를 반환합니다.
아래 예에서는 비트 회전을 확인하기 위해 위의 알고리즘을 구현했습니다. 여기서는 첫 번째 숫자의 각 회전을 하나씩 가져와 두 번째 숫자와 비교합니다. 회전이 일치하면 사용자가 출력에서 관찰할 수 있는 true를 반환합니다.
으아아아사용자는 두 숫자가 서로 비트 루프인지 확인하는 두 가지 방법을 배웠습니다. 첫 번째 방법에서는 첫 번째 문자열을 자체 문자열과 연결하고 두 번째 숫자가 하위 문자열로 존재하는지 확인합니다. 두 번째 방법에서는 for 루프를 사용하여 첫 번째 숫자의 모든 비트 회전을 찾아 두 번째 숫자와 일치시킵니다.
위 내용은 두 숫자가 서로 비트 루프인지 확인하는 Javascript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!