Algorithm/Problems

n개의 수의 총합을 계산하기

공부좀하시졍 2020. 4. 10. 14:55
#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개의 수 중 최솟값 찾기

 

n개의 수 중 최솟값 찾기

#include #define SIZE 100 int findmin(int arr[],int n,int min); int main(){ int n; int arr[SIZE]={0,}; int i, min; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&arr[i]);="" min="arr[0];"> </n;i++)>

jung-in5ecurity.tistory.com