1. ## Formula Logic Help

Hello,

I was given the following formula to calculate a determinant:

Java Code:
```  public double calculateDeterminant() {

double det = 0;
System.out.println("RowCount: " + RowCount);
if (RowCount == 1) {
det = CalculateBaseCase("1");
return det;
}
//base case
if (RowCount == 2) {
det = CalculateBaseCase("2");
return det;
}

for (int i = 0; i < RowCount; i++) {
det = Math.pow(-1, i) * getValAt(i, 0) * minor(i,0).calculateDeterminant();
}
return det;

}```
I have some println statements in place, and it seems like my i for the 'minor(i,0)' method stays at 0. Anybody able to tell me where the formula is wrong?
Last edited by sehudson; 03-11-2011 at 02:38 AM.  Reply With Quote

2. ## Java Code:
```int val;
for(int i = 1; i <= 10; i++) {
val = i;
}
System.out.println(val);```
The output is 10. The above code can be simplified to
Java Code:
```int val = 10;
System.out.println(val);```
Do you understand what I'm getting at?  Reply With Quote

3. ## partially..since in your example the println is outside the loop, the only thing that gets printed is the last loop value, which is 10.  Reply With Quote

4. ## not exactly sure.  Reply With Quote

5. ## The print statement is irrelevant. It was included in case the code was compiled and run to see the output.

The point I was trying to make is that your loop is pointless only the last value is retained. When i is 1, perform calculation, assign to det. Then i is 2, perform calculation, assign to det, throw away first result. Then i is 3, perform calculation, assign to det, throw away second result, etc. Your loop can be replaced with:
Java Code:
`det = Math.pow(-1, RowCount - 1) * getValAt(RowCount - 1, 0) * minor(RowCount - 1,0).calculateDeterminant();`  Reply With Quote

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•