Keep in mind that there is a mathematical way to do this.
Adding all digits 1-100:
//echo -a $calc((100 + 1) * (100 - 1 + 1) / 2)
(ending digit + beginning digit) * (ending digit - beginning digit + 1) / 2 = sum
You use a similar thing for using a step other than 1 (0-100 by 10):
//echo -a $calc((100 / 10) * (10 * (100 / 10) + 10) / 2)
This is Gauss's formula.
(ending digit / step) * (step * (ending digit / step) + step) / 2 = sum
(ending digit / step) = number of steps
Here's another example (0-20 by 2):
//echo -a $calc((20 / 2) * (2 * (20 / 2) + 2) / 2)
Note that this works from 0-N. It won't work from 10-N or something else unless you do more work. If you want to do a different starting number than 0, then you'll do the equation twice...
For 10-20 by 2:
//echo -a $calc(((20 / 2) * (2 * (20 / 2) + 2) / 2) - ((8 / 2) * (2 * (8 / 2) + 2) / 2))
(ending digit / step) * (step * (ending digit / step) + step) / 2 -
((beginning digit - step) / step) * (step * ((beginning digit - step) / step) + step) / 2 = sum
What you're doing is subtracting the sum of all the numbers prior to your starting number from the sum of the total.
You can make a $gauss identifier for this:
alias gauss {
return $calc((($2 / $3) * ($3 * ($2 / $3) + $3) / 2) - ((($1 - $3) / $3) * ($3 * (($1 - $3) / $3) + $3) / 2))
}
USE: $gauss(beginning number,ending number,step)
EXAMPLE: $gauss(10,100,10)
NOTE: You should make sure that there is an even number of steps (1-4 step 2 wouldn't work well, but 0-4 step 2 would)