posted 12 years ago
Well you didn't need the if statement before the System.out at the end since this would be checked in every loop. You could have just put it after the loop completed.
Also, the array itself was unnecessary since you defined "anArray[i]=i" at the beginning of every loop. You could have removed the array completely and just done "add = add + i" or "add += i" for short.
Finally, you could have used mathematics to determine that the sum of integers from 1 to N is defined to be: (n^2 + n)/2 although the proof of this normally requires induction.
Also, the array itself was unnecessary since you defined "anArray[i]=i" at the beginning of every loop. You could have removed the array completely and just done "add = add + i" or "add += i" for short.
Finally, you could have used mathematics to determine that the sum of integers from 1 to N is defined to be: (n^2 + n)/2 although the proof of this normally requires induction.
[OCA 8 Book] [OCP 8 Book] [Blog] * SCJP (1.4, 1.6) * OCAJP 8 * OCPJP 8
posted 12 years ago
By the way, note that you get 4950 since you are really summing from 0 to 99, not 1..100. If you apply the formula to 99 it works out to be exactly 4950. Keep in mind this formula is a shortcut and may not be what your teacher wanted. Its not often such short cuts exist but when they do its great to be able to use them.
[ November 08, 2005: Message edited by: Scott Selikoff ]
[ November 08, 2005: Message edited by: Scott Selikoff ]
[OCA 8 Book] [OCP 8 Book] [Blog] * SCJP (1.4, 1.6) * OCAJP 8 * OCPJP 8
Stephen Foy
Ranch Hand
Posts: 143
posted 12 years ago
No, I think you misunderstand. For the first part where I said to remove the array, I assumed your goal was the target value of 4950, not the array so you could do:
But the second piece of advise (n^2+n)/2 there is no loop needed, its one line of code really:
For the equation no loop is neccessary, its extremely fast with O(1) running time compared to O(n) for the loop.
[ November 08, 2005: Message edited by: Scott Selikoff ]
But the second piece of advise (n^2+n)/2 there is no loop needed, its one line of code really:
For the equation no loop is neccessary, its extremely fast with O(1) running time compared to O(n) for the loop.
[ November 08, 2005: Message edited by: Scott Selikoff ]
[OCA 8 Book] [OCP 8 Book] [Blog] * SCJP (1.4, 1.6) * OCAJP 8 * OCPJP 8
posted 12 years ago
You may take a look at java.reflect.Array
Api is at
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Array.html
But it don't provide you a sum operation.
Alternatively you can create a collection by implementing collection and give it a sum method. The custom collection could be a collection of primitives or nonprimitives. toArray method can be implemented to convert the Collection to an Array if needed.
Api is at
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Array.html
But it don't provide you a sum operation.
Alternatively you can create a collection by implementing collection and give it a sum method. The custom collection could be a collection of primitives or nonprimitives. toArray method can be implemented to convert the Collection to an Array if needed.
Poop goes in a willow feeder. Wipe with this tiny ad:
Rocket Oven Kickstarter  from the trailboss
https://coderanch.com/t/695773/RocketOvenKickstartertrailboss
