Skip to content

The Dummy Programmer

Stories of daily programming

  • Home
  • My other dummy projects
  • Games
    • Space Y: An Asteroids clone
  • Services
    • What’s my user agent
    • What’s my IP address
  • About
  • Toggle search form

Sum the first N numbers in your program

Posted on May 3, 2020May 4, 2020 By

Today I want to talk about a little math trick… sum the first N numbers, where N is an arbitrary number of your choice.

To do the job, you may be tempted to use a loop, something similar to the code below (in C#):

int result = 0;
for (int i = 1; i <= 100; i++)
    result += i;
// Now the variable 'result' contains the value of the sum

Putting the above code apart, you can save some CPU machine cycles using the following math formula:

    \[ S = \frac {N({N+1})}{2} \]

Obviously it is not my invention, but it can be found in any math book…
Therefore, regardless of whether you want to add the first 100 numbers or the first 1,000,000 numbers, the only thing you have to do is apply the formula above.

For example:

Sum of the first 100 numbers: 100 * 101 / 2 = 5,050

Sum of the first 1,000,000 numbers: 1,000,000 * 1,000,001 / 2 = 500,000,500,000

And so on….

It is interesting how you can get to the demonstration…
Suppose you want to sum the first 4 number, from 1 to 4.
You can write the following:


    \[S = 4 + 3 + 2 + 1 = 10\]

Now rewrite it using the N symbol instead of numbers, and below write the same sequence in reverse order:

    \[ S = N + (N - 1) + (N - 2) + (N - 3) \]

    \[ S = (N - 3) + (N - 2) + (N - 1) + N \]

If you sum each member of the first equation with the corresponding member of the second equation you will get the following equation:

    \[ 2S = (2N - 3) + (2N - 3) + (2N - 3) + (2N - 3) \]

This equation tells us that the double of the sum equals 4 times (2N – 3). So, since N = 4, to calculate S we can write the following:

    \[ S = \frac {N (2N - 3)}{2} \]

Be careful… the above formula works only for N = 4. This happens because the number 3 you see in the formula also depends on N. To make the formula work for the general case we only have to replace 3 with N – 1:

    \[ S = \frac {N (2N - (N - 1))}{2} \]

    \[ S = \frac {N (2N - N + 1)}{2} \]

And now the final formula:

    \[ S = \frac {N (N + 1)}{2} \]

Bye bye!!

Mathematics, Programming

Post navigation

Previous Post: Using The Dummy Programmer Chat Client
Next Post: Quickly open the startup folder in Windows 10

Related Posts

The Goldbach’s conjecture Mathematics

Search

Related posts

  • A chat program built in C# with .NET socket library

Categories

  • .NET 6 (1)
  • .NET 7 (1)
  • AJAX (1)
  • Android (2)
  • Apache (4)
  • ASP.NET (9)
  • ASP.NET MVC (3)
  • Avalonia UI (1)
  • BCP (1)
  • Bitlocker (2)
  • C# (14)
  • CentOS (4)
  • ClosedXML (1)
  • CLR (1)
  • DNS (1)
  • Encryption (3)
  • Excel (2)
  • FuelPHP (3)
  • Games (2)
  • Google Chrome (1)
  • GSuite (1)
  • HTML (1)
  • Imagick (2)
  • Javascript (1)
  • Kindle (1)
  • LAMP (3)
  • Linux (7)
  • MariaDB (2)
  • Mathematics (2)
  • MySql (4)
  • NPOI (1)
  • Office 365 (1)
  • Perl (1)
  • PHP (6)
  • Programming (1)
  • Remote desktop (1)
  • SFTP (2)
  • Sockets (3)
  • Sql Server (20)
  • Sql Server 2016 (14)
  • Sql Server 2019 (1)
  • SSL (4)
  • Task scheduler (1)
  • Telerik ASP.NET AJAX (2)
  • The Dummy Programmer Chat (2)
  • Threading (5)
  • Tools (1)
  • TPL (3)
  • TypeScript (3)
  • Ubuntu (4)
  • Virtualization software (3)
  • Visual Studio (1)
  • Visual Studio Code (2)
  • VueJS (1)
  • Web fonts (1)
  • Web programming (6)
  • Windows (12)
  • Windows 10 (15)
  • Windows Forms (1)
  • Windows Server (6)

Copyright © 2024 The Dummy Programmer | Privacy Policy | Terms of use |

Powered by PressBook Masonry Dark

Manage Cookie Consent
This site doesn’t collect user personal data and doesn’t install profiling or analytical cookies, either its own or from third parties. Read our privacy policy for more info.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}