배열은 데이터 유형이 동일한 요소의 컨테이너입니다. 제품 배열 퍼즐에서 모든 요소의 곱을 찾습니다.
이 제품 배열 퍼즐에서는 요소를 제외한 배열의 모든 요소의 곱을 찾아야 합니다. 조건은 나눗셈 연산자 를 사용할 수 없다는 것입니다. 이것을 다른 배열에 저장합니다.
이 문제를 해결하기 위해 두 개의 제품을 만들 것입니다. 하나는 모든 왼쪽 요소용이고 다른 하나는 모든 오른쪽 요소용입니다. 그리고 이 좌우 상품을 추가하면 원하는 상품을 얻을 수 있습니다.
예시
#include<stdio.h>
#include<stdlib.h>
void productfind(int arr[], int n) {
int *left = (int *)malloc(sizeof(int)*n);
int *right = (int *)malloc(sizeof(int)*n);
int *prod = (int *)malloc(sizeof(int)*n);
int i, j;
left[0] = 1;
right[n-1] = 1;
for(i = 1; i < n; i++)
left[i] = arr[i-1]*left[i-1];
for(j = n-2; j >=0; j--)
right[j] = arr[j+1]*right[j+1];
for (i = 0; i < n; i++)
prod[i] = left[i] * right[i];
for (i = 0; i < n; i++)
printf("%d ", prod[i]);
return;
}
int main() {
int arr[] = {10, 3, 5, 6, 2};
printf("The array is : \n");
int n = sizeof(arr)/sizeof(arr[0]);
for(int i = 0;i < n; i++){
printf("%d ",arr[i]);
}
printf("The product array is: \n");
productfind(arr, n);
} 출력
The array is : 10 3 5 6 2 The product array is: 180 600 360 300 900