12,350,443 members (24,870 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 12:32pm
Edited 10-Nov-12 13: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 188 ppolymorphe 120 Dave Kreskowiak 70 Sergey Alexandrovich Kryukov 61 Richard MacCutchan 50
 OriginalGriff 8,660 Sergey Alexandrovich Kryukov 6,002 Dave Kreskowiak 2,834 ppolymorphe 2,256 Richard MacCutchan 2,169