#include <stdio.h>
#define SIZE 100
int sumArr(int arr[],int sum,int indexNum);
int main(){
int n;
int arr[SIZE]={0, };
int i, sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
sum=sumArr(arr,sum,i);
printf("합: %d\n",sum);
return 0;
}
int sumArr(int arr[],int sum,int indexNum){
sum+=arr[indexNum];
if(indexNum==0)
return sum;
else {
return sumArr(arr,sum,--indexNum);
}
}
n개의 수를 입력 받아 재귀함수를 이용하여 배열에 들어 있는 값의 총합을 구한다.
반복문을 이용하면 뚝!딱! 했겠지만 재귀함수만을 이용하려니 생각보다 시간이 걸렸다,, 공부하자,,,,
int sumArr(int arr[],int n){
if(n==1)
return *arr;
else
return arr[n-1]+sumArr(arr,n-1);
}
위 함수랑 똑같지만 return만을 이용하여 더 간단하게 짤 수도 있다.
2020/04/10 - [Algorithm/Problems] - n개의 수 중 최솟값 찾기
'Algorithm > Problems' 카테고리의 다른 글
[프로그래머스] 체육복 (탐욕법 Greedy) (0) | 2022.08.16 |
---|---|
[백준] 2675번 문자열 반복 (0) | 2022.08.11 |
[프로그래머스] 타겟 넘버 (DFS/BFS) (0) | 2022.08.02 |
selection sort(선택 정렬) (0) | 2020.04.10 |
n개의 수 중 최솟값 찾기 (0) | 2020.04.10 |