programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

Ranch Hand
Posts: 143
On one of my lab week tutorials we had to do this, add the values of and array, the outcome would be 4950.

I wrote my program that works, and gives the value, 4950

Is there an easiar way to achieve this?

author
Bartender
Posts: 4096
21
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.

Scott Selikoff
author
Bartender
Posts: 4096
21
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 ]

Stephen Foy
Ranch Hand
Posts: 143
Thanks for the tips, i didnt fully understand what you mean by remove array, i presume you mean the "anArray[i]+anArray[i]"?

Hows that?

Scott Selikoff
author
Bartender
Posts: 4096
21
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 ]

Ranch Hand
Posts: 308
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 non-primitives. 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/Rocket-Oven-Kickstarter-trailboss