12,820,224 members (27,766 online)
Rate this:
See more:
when i trace the code im getting 1,3,5,7 for the answer but the compiler prints 1,3,6,10
im having trouble understanding how this happens could anyone explain

```int [] a= new int[5];  // create array
for (int i =1; i<=4; i++)
{
a[i]=a[i-1]+i;
System.out.print(a[i]+" ");
}```
Posted 10-Nov-12 13:32pm
Updated 10-Nov-12 14:23pm
TorstenH.34.9K
v2
Nelek 10-Nov-12 18:44pm

What I can not understand is where you get 1,3,5,7. The result of this code is what the compiler prints.

Rate this:

## Solution 1

when i trace the code

You debug it. While debugging you figure several operations in one line:

```for (int i =1; i<=4; i++)
{
a[i]=a[i-1]+i;
System.out.print(a[i]+" ");
}
```

should be

```for (int i =1; i<=4; i++)
{
int iNumber = a[i-1]; // get number of previous field
iNumber += i; // add counter
a[i]=iNumber; // place result
System.out.print(a[i]+" ");
}
```

This way you can figure every step and see that the output if this is "1 3 6 10".

5ed.
--SA

Top Experts
Last 24hrsThis month
 OriginalGriff 240 ppolymorphe 55 Peter Leow 45 Dave Kreskowiak 40 Richard MacCutchan 40
 OriginalGriff 4,787 Graeme_Grant 3,814 Karthik Bangalore 3,501 Jochen Arndt 2,571 ppolymorphe 2,502