>백엔드 개발 >C++ >주어진 배열을 두 부분으로 나눈 후 K번 순환 이동을 수행한 후 비트별 OR을 사용하여 배열의 합을 구합니다.

주어진 배열을 두 부분으로 나눈 후 K번 순환 이동을 수행한 후 비트별 OR을 사용하여 배열의 합을 구합니다.

王林
王林앞으로
2023-08-27 23:05:061302검색

주어진 배열을 두 부분으로 나눈 후 K번 순환 이동을 수행한 후 비트별 OR을 사용하여 배열의 합을 구합니다.

C++에서 배열 분할은 배열을 여러 하위 배열로 분할하는 것을 의미합니다. 비트 OR 연산자는 C++에서 두 비트 OR 인덱스 간의 비교 및 ​​계산을 처리하는 데 사용됩니다. 이 기사에서는 k개의 순환 이동을 사용합니다. 이는 마지막 인덱스 위치가 0 인덱스 위치, 즉 k번에 따라 첫 번째 배열 요소로 이동한다는 것을 의미합니다.

배열의 순환 이동을 이해하기 위해 예를 들어 보겠습니다.

주어진 배열은 길이가 6인 1, 2, 3, 4, 5, 6, 7입니다.

이제 k에 값 3을 할당합니다. 이는 k개의 원형 이동을 의미합니다.

순환교대의 동작 단계는 다음과 같습니다.

1단계 − 인덱스[6]을 인덱스[1]로 이동한 다음 인덱스[5]가 인덱스[6]의 위치를 ​​유지합니다. 첫 번째 원형 쉬프트는 7,1,2,3,4,5,6이 되므로 원형 쉬프트가 회전하게 됩니다.

2단계 - 두 번째 원형 이동 - 6,7,1,2,3,4,5

3단계 - 세 번째 원형 이동 - 5,6,7,1,2,3,4(최종 결과)

문법

으아아아
  • Vector는 키워드로 사용되며 데이터 유형은 사용자가 언급한 것입니다. 마지막으로 vector_name은 사용자가 지정한 벡터의 이름을 나타냅니다.

  • 첫 번째 매개변수는 벡터의 크기를 지정합니다. 두 번째 매개변수는 벡터의 각 요소를 초기화하는 데 사용되는 값입니다.

으아아아
  • mod(%) 연산자를 사용하여 배열을 두 부분으로 나누고 비트 OR '|'를 사용하여 두 부분의 각 요소 값을 얻을 수 있습니다.

  • 'arr[(i+k)%arr.size()]'는 비트 OR 연산을 수행할 때의 이동 인덱스를 나타내며, 이는 'splitArray[에 따라 분할 배열의 두 요소 중 하나를 제공합니다. i%2]' 해당 관계입니다.

알고리즘

  • 헤더 파일 'iostream''Vector'을 사용하여 프로그램을 시작하겠습니다.

  • 우리는 'arr''k'을 매개변수로 받아들이는 'Split_arr_sum_bitwise'라는 함수를 정의할 것입니다. 이 함수는 순환 이동 후 배열 값과 업데이트된 배열 값을 받습니다.

  • 'Split_arr_sum_bitwise' 함수 내에서 'splitArray'라는 벡터 변수를 초기화하겠습니다. 이 함수는 배열의 양쪽 절반을 모두 저장합니다.

  • 다음으로 비트 OR 연산자 '|'를 사용하여 변수 sum에 값 0을 저장합니다. 이 값은 나중에 'splitArray'라는 함수를 사용하여 배열에 추가됩니다.

  • 그런 다음 원래 배열을 반복할 첫 번째 for 루프를 만듭니다.

  • 그런 다음 비트 연산자 '|'를 사용하여 두 부분의 합을 계산하는 두 번째 for 루프를 만듭니다. 이 연산자는 K 원형 이동 후에 배열을 두 부분으로 분할합니다.

  • 이제 주 함수를 시작합니다. 배열 값을 'array' 변수로 초기화하고 '3' 값을 'k' 변수에 저장합니다. 이 변수는 주어진 배열의 순환 이동을 정의합니다. 비트.

  • 마지막으로 print 문에서 'Split_arr_sum_bitwise'라는 함수를 호출하고 'K''array' 매개변수를 전달하여 최종 출력을 얻습니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

이 프로그램에서는 비트별 OR 연산자를 사용하여 배열 합계를 구현한 다음 K 순환 이동 후 배열을 두 부분으로 분할합니다.

으아아아

출력

으아아아

결론

우리는 배열이 두 부분으로 분할되는 K 순환 이동의 개념을 살펴보고 비트별 OR 연산이 분할된 배열의 값을 저장하기 위해 합산을 수행하는 방법도 살펴보았습니다. % 모듈로 연산자는 배열을 반으로 분할하여 배열 인덱스 위치에 패리티 계산을 표시합니다.

위 내용은 주어진 배열을 두 부분으로 나눈 후 K번 순환 이동을 수행한 후 비트별 OR을 사용하여 배열의 합을 구합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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