2013-03-25 3 views
0

이 프로그램은 전체 힙을 처리하지만, 문제가있는 부분은 arraylist의 홀수 인덱스를 합산하는 것입니다.배열 요소의 홀수 인덱스 합계

매 1, 3, 5, 7 등. 나는 합계를하고 변수에 추가해야합니다. 변수의 데이터 유형은 BigFraction이고 ArrayList - 지식은 BigFractions에만을 사용합니다.

그래서 처음에 나는이 ArrayList에의 인덱스를 얻기위한 올바른 구문은 경우

//Returns the combined probability (the odd indexes of the arraylist) 
public BigFraction weight() { 
    BigFraction sum; 
    if (knowledge.indexOf(knowledge)%2 == 1) 
     sum+ = no idea what to put in here 
     return sum; 
    } 
} 

난 정말 모르겠어요했다 하나 ... 내가, 당신이 너무 .add 또는 무언가를 사용할 수 있습니다 생각하지만, 누구나 굉장한 빛을 낼 수 있다면.

건배,

심 여기

+0

반복 들어 ..에 대한 (INT I = 1, 최대 =는 list.size를(); 전 = 2 +, 나는 최대 <) { –

+0

인덱스 자체를 얻으려면 또는 그 색인에 저장된 값? –

+0

@Ankur - OP가 홀수 색인을 합산하기를 원할 것 같지 않습니다. – SudoRahul

답변

2

이 밖으로 시도 :

// Returns the combined probability (the odd indexes of the arraylist) 
public BigFraction weight() { 
    BigFraction sum; 
    for (int index = 1; index < knowledge.size(); index = index + 2) { 
     sum = sum.add(knowledge.get(index)); 
    } 

    System.out.println("Sum is " + sum); 

    return sum; 
} 
+2

작업을 atleast에 시도해 보겠습니다. 완전 구운 코드. – SudoRahul

+0

그 대신 합계를 변경해야 합계 sum = sum.add 필요가 있기 때문에 나는 다른 일반적인 방법으로, bigfractions 추가하는 다른 방법을 부여했습니다. 반면에, .length이 경우 해결되지 않으며 오류가 나를 던지고있다. – Sim

+1

좋아, 나는 그것을 얻었고, 건배는 내가 BigFraction.ZERO 기본적으로이 특정 메서드에 대한 분수로 0입니다 합계를 초기화했다 감사합니다. – Sim

1

는 힌트 : 당신은 이미 홀수 인덱스가 무엇인지 알고있다. 당신은 당신의 질문에 그들을 나열했습니다. 당신이해야 할 일은 루프에 대한 방법을 찾아내는 것입니다.

일단 알았 으면 주어진 색인의 요소를 가져 오는 방법을 찾아야합니다.

나머지는 분명 할 것입니다.

+0

for 루프를 사용하기 전에 시도 했으므로 잘 작동하지 않았습니다. 다시 시도해 볼 것입니다. – Sim