정수형 배열이 주어졌을 때, 배열에 포함된 모든 요소를 곱한 결과를 계산하여 화면에 출력하는 것이 이 프로그램의 목표입니다.
예시
입력-: arr[]={1,2,3,4,5,6,7}
출력-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040
입력-: arr[]={3,4,6,2,7,8,4}
출력-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256해결 접근 방식
아래 프로그램에서 사용하는 핵심 로직은 다음과 같습니다.
- 최종 결과를 저장할 임시 변수(temp)를 선언하고 1로 초기화합니다.
- 배열의 크기 n만큼 반복문을 실행합니다(인덱스 0부터 n-1까지).
- 반복문 안에서 temp 값에 arr[i]를 계속 곱해 나갑니다.
- 반복이 끝나면 temp에 저장된 값을 출력합니다. 이것이 바로 모든 요소의 곱입니다.
알고리즘
Start
Step 1-> 배열 요소 곱셈을 위한 함수 선언
int multiply(int arr[], int len)
정수 i와 temp=1 설정
For 루프: i=0부터 i main() 함수에서
int arr[]={1,2,3,4,5,6,7} 선언
int len = sizeof(arr)/sizeof(arr[0]) 설정
int value = multiply(arr,len) 호출
value 출력
Stop C++ 코드 예제
다음은 입력값들을 곱하여 원하는 결과를 생성하는 실제 코드 예제입니다.
#include<stdio.h>
// 곱셈 함수
int multiply(int arr[], int len) {
int i,temp=1;
for(i=0;i<len;i++) {
temp=temp*arr[i];
}
return temp;
}
int main() {
int arr[]={1,2,3,4,5,6,7};
int len=sizeof(arr)/sizeof(arr[0]);
int value = multiply(arr,len);
printf("value of array elements after multiplication : %d",value);
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
value of array elements after multiplication : 5040
추가 설명
이 알고리즘의 시간 복잡도는 O(n)으로, 배열의 길이에 비례하여 한 번씩 순회하면서 곱셈을 수행하기 때문에 매우 효율적입니다. 공간 복잡도 역시 추가 변수 하나만 사용하므로 O(1)입니다.
참고로, 배열 요소가 많거나 값이 클 경우 곱셈 결과가 int 범위(약 ±21억)를 초과할 수 있습니다. 이런 경우에는 long long 타입을 사용하거나 오버플로우 처리를 고려하는 것이 좋습니다.