정수 변수 Number를 입력으로 제공합니다. 1부터 Number까지의 요소를 정렬된 순서로 포함하는 배열을 생각해 보겠습니다. 배열에 대해 작업을 수행하면 홀수 위치의 요소가 각 단계에서 제거됩니다. 그러면 목표는 이 작업을 수행하는 것입니다. N 요소가 하나만 남을 때까지의 횟수입니다. 끝에 요소를 인쇄합니다.
참고 -: 요소는 인덱스 0의 배열이 위치 1에 있도록 배치됩니다.
입력 번호=1, 출력=1
입력 번호=2, 출력=2
입력 번호=3, 출력=2
>입력 번호=4, 출력= 4
입력수량=5, 출력=4
입력수량=6, 출력=4
입력수량=7, 출력=4
...
입력수량=12, 출력=8
입력수 = 20, 출력 = 16
위 관찰에 따르면 2i 에서 2i+1-1 사이의 숫자 범위에 대해 출력은 2i .
Input이 됩니다. −Number=7
출력 − 단일 축소 작업 후의 요소는 다음과 같습니다. 4
설명 − 첫 번째 요소는 위치 1에 있습니다.
배열은 [ 1 2 3 4 5 6 7 ]
첫 번째 작업 후: [ 2 4 6 ]
두 번째 작업 후: [ 4 ]
Enter − 숫자 = 18
출력 − 축소 작업 후 단일 요소는 다음과 같습니다. 4
설명 − 첫 번째 요소는 위치 1에 있고
배열은 [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18]
1차 연산 후: [ 2 4 6 8 10 12 14 16 18]
2차 연산 후: [ 2 8 12 16 ]
3차 연산 후: [ 8 16 ]
4회 연산 후 [ 16 ]
이 방법에서는 while 루프를 사용하여 위 수식을 기반으로 최종 결과를 계산하겠습니다. 초기 값 2부터 시작하여 2*result
입력 변수 Number 가져오기
getsingleElement(long num) 함수는 입력 숫자를 가져와서 위 수식에 따라 결과를 인쇄합니다.
변수 결과를 얻으세요.
결과를 2로 초기화합니다.
while 루프를 사용하여 결과*2 li>
내 결과가 두 배로 늘어납니다.
while 루프가 끝나면 원하는 값을 얻습니다.
결과를 반환합니다.
메인에 결과를 인쇄하세요.
#include<bits/stdc++.h> using namespace std; long getsingleElement(long num){ long result; result=2; while(result*2 <= num){ result=result*2; } return result; } int main(){ int Number = 20; cout<<"The single element after reduction operation is : "<<getsingleElement(Number) ; return 0; }
위 코드를 실행하면 다음과 같은 출력이 생성됩니다
The single element after reduction operation is : 16
위 내용은 주어진 연산을 사용하여 배열을 하나의 요소로 줄입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!