정수 요소와 두 개의 숫자 시작 및 끝을 포함하는 배열이 주어지며 작업은 배열의 시작과 끝 사이에 있는 요소 수를 계산하는 것입니다.
배열은 같은 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조입니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다. 시작 요소가 여러 번 발생하면 시작 요소의 첫 번째 발생을 고려하고 끝 요소가 여러 번 발생하면 끝 요소의 끝 발생을 고려합니다.
예
Input − int arr[] = {1, 2, 3, 4, 5, 6, 7} Start = 1 and End = 7 Output − count is 5
설명 - 주어진 배열에는 7개의 요소가 있고 범위는 1-7입니다. 따라서 이 범위 사이에는 총 5개의 요소가 있습니다.
Input − int arr[] = {1, 2, 3, 4, 5, 6, 7} Start = 7 and End = 9 Output − count is 0
설명 - 주어진 배열에는 7개의 요소가 있고 범위는 7-9입니다. 따라서 이 범위 사이에는 요소가 없으므로 개수는 0입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
int arr[]
와 같이 배열을 입력합니다. -
배열의 요소에 따라 정수 값을 반환하는 length() 함수를 사용하여 두 배열의 길이를 계산합니다.
-
i가 배열의 크기보다 작아질 때까지 i에서 0까지 루프를 시작합니다.
-
루프 내에서 arr[i] =start then break
인지 확인하십시오. -
i>size-1인지 확인한 다음 반환
-
j에서 size-1 및 j>=i+1 및 j--
로 다른 루프 시작 -
arr[j]=end then break
인지 확인 -
j=1인지 확인한 다음 0을 반환합니다.
-
리턴 j-i-1
-
결과를 인쇄하십시오.
예
#include <iostream> using namespace std; // For counting the numbers between the two elements int countelements(int ar[], int n, int start, int end){ // Find start int i = 0; for (i = 0; i < n; i++){ if (ar[i] == start){ break; } } // If start is not present or present at the last if (i >= n-1){ return 0; } // Find end int j; for (j = n-1; j >= i+1; j--){ if (ar[j] == end){ break; } } // If end is not present if (j == i){ return 0; } // number of elements between the two elements return (j - i - 1); } // Main Function int main(){ int ar[] = { 1, 6, 2, 5, 9, 8, 3, 7, 4 }; int n = sizeof(ar) / sizeof(ar[0]); int start = 5, end = 4; cout <<"count is " <<countelements(ar, n, start, end); return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다 -
count is 4