July 13, 2011

I am not entirely sure why, however a couple of days ago the following search keywords were used to access one or more articles on this blog:

the sum of 1+2+3+4...+98+99+100

The above request I found to be a bit interesting, and there is a 50/50 chance that the person found the right answer to the sum of the numbers between 1 and 100.

If you had to solve this problem with the help of Oracle Database, how would you accomplish the task? If it helps, I think that I recall that the mathematical notation representing the problem posed by the searcher is as follows:

Would your answer be any different if the person needed to know the sum of the numbers between 6 and 105:

What about generalizing the problem even further:

Think about the problem before scrolling down. How many unique solutions are able to produce the answer?

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

————————————

If you think about the problem, in its simplist form it is really just a matter of repeatedly adding the set of the highest and lowest unmatched numbers (all of those results should be the same, otherwise your calculator needs new batteries) and then multiplying by the number of pairs (1/2 as many numbers are in the sequence to be summed):

01 + 100 = 101 02 + 99 = 101 03 + 98 = 101 04 + 97 = 101 05 + 96 = 101 ... 50 + 51 = 101

So, the general formula is:

`(max - min + 1) / 2 * (min + max)`

And the SQL statements to produce the results:

SELECT (100 - 1 + 1) /2 * (1 + 100) FROM DUAL; SELECT (105 - 6 + 1) /2 * (6 + 105) FROM DUAL;

————————————

–

–

–

–

–

–

–

–

–

–

–

–

For now, ignore the above section. How many ways can this particular problem be solved with the help of Oracle Database? Are there any built-in functions that will help?

## Recent Comments