1,2,3에서 N까지의 합계를 계산하는 재귀 적 방법을 만드는 데 문제가 있습니다. (N/2 + 1 ... N)으로 (1,2,3 ... N/2)를 더한다.반복적 인 방법으로 N/2에서 N까지 1을 N/2에서 N을 계산하여 계산합니다.
나는 이것이 잘못된 생각public static void main(String[] args) {
System.out.println(sum(10, 1));
}
public static int sum(int n, int start) {
if (start == n){
return n;
}
if (start > n/2){
return start + sum(n, start + 1);
}
return start + sum(n, start + 1);
}
, 그것은 우리가 부분에 재귀를 분할하는 것은 더/덜 어떻게 동기를 부여해야 할 학교에서 과제는 다음과 같습니다
내가 지금까지 관리 코드는 다음입니다 합계를 계산하는 효율적인 방법. (1부터 N까지 직접 N/2에서 N으로 1에서 N/2까지의 숫자 추가).
그는 우리에게이 방법을 사용하여 우리를 더욱 어렵게 만들었지 만,이 방법에 대한 아이디어는 전혀 파악할 수 없습니다. 맞습니까?
감사합니다.
당신이 수단 "(/ + 1 2 ... N에 N)와 (N/2로 ... 1,2,3)을 추가"무엇을 명확히 주시겠습니까? –
'N * (N + 1)/2'은 더 빠릅니다. p –
N = 10 인 경우 1,2,3,4,5,6,7,8,9,10을 의미합니다. 이므로 1 + 2 + 3 + 4 + 5 = 15, 6 + 7 + 8 + 9 + 10 = 45이다. 15 + 45 = 55 –