public class TestSum {
public static void main(String[] args) {
// 숫자 n을 지정한 경우, 1~n 까지의 합계 출력
int num =10;
int totalSum=0;
sumNum(num);
System.out.println(reCall(totalSum, num));
}
//반복문을 사용한 함수
private static void sumNum(int num) {
int totalNum=0;
if(num>0) {
for(int i=1; i<=num ; i++) {
totalNum += i;
}
}
System.out.println(totalNum);
}
//재귀함수 사용
//n -> n+ (n-1)+ (n-1)-1 + ...+1
private static int reCall(int sum, int num) {
/* if(num>0) {
int result = sum +num;
result = reCall(sum + num, --num);
return result;
}
return sum;
}*/
/* //삼항 연산자 사용
int result = sum +num;
return (num>0)? reCall(sum+num, --num) : result; */
//한줄로 튜닝
return (num>0)? reCall(sum+num, --num) : sum +num;
}
}