Instructions
Your task is to make function, which returns the sum of a sequence of integers.
The sequence is defined by 3 non-negative values: begin, end, step.
If begin value is greater than the end, function should returns 0
Examples
SequenceSum (2,2,2); // => 2
SequenceSum (2,6,2); // => 12 -> 2 + 4 + 6
SequenceSum (1,5,1); // => 15 -> 1 + 2 + 3 + 4 + 5
SequenceSum (1,5,3); // => 5 -> 1 + 4
This is the first kata in the series:
1) Sum of a sequence (this kata) 2) Sum of a Sequence [Hard-Core Version]
My Solution
public static class Kata
{
public static int SequenceSum(int start, int end, int step)
{
int sum = 0;
for (int i = start; i <= end; i += step)
{
sum += i;
}
return sum;
}
}
기본적인 for문의 사용 방법만 알면 풀 수 있는 문제.
Best Practices 1
public static class Kata
{
public static int SequenceSum(int start, int end, int step)
{
int sum = 0;
for ( int i = start; i <= end; i += step)
{
sum += i;
}
return sum;
}
}
답은 일치 한다.
Best Practices 2
public static class Kata
{
public static int SequenceSum(int start, int end, int step)
{
return start == end ? end : start > end ? 0 : SequenceSum(start + step, end, step) + start;
}
}
표 자체는 많이 받지 못한 해답인데. 재귀 함수를 사용하여 푸는 방식을 사용 하였다.