How do you calculate 1+2+…+n in C# without multiplication, division, key words including for, while, switch, and case, as well as a conditional operator ( A?B:C)?
using System; using System.Linq; namespace MiscPrograms { class SumSeriesProgram { static void Main(string[] args) { int N = 5; Console.WriteLine("Sum for Series 1+2+... upto N={0} is {1}",
N,SumSeries.SumSeriesElement(N));
Console.WriteLine("Press any key to exit..");
Console.ReadKey();
}
}
public class SumSeries
{
//global var to hold sum
static int Sum = 0;
//Number of items in series
static int NoOfItems = 0;
//Constructor to calculate Sum value
public SumSeries()
{
++NoOfItems; Sum += NoOfItems;
}
//Reset global variables
static void Reset() { Sum = 0; NoOfItems = 0; }
static int GetSum() { return Sum; }
//Get Sum for the series
public static int SumSeriesElement(int N)
{
//Reset global variables
SumSeries.Reset();
//1). Create instances for N items using Linq
new SumSeries[N].ToList().ForEach(c => c = new SumSeries());
//OR
//2). Create instances for N items using recursion
//SumSeries.CreateInstancesRecursively(N);
return SumSeries.GetSum();
}
//Using recursion create N instance to calculate sum
static int CreateInstancesRecursively(int N)
{
if (N == 0)
return SumSeries.GetSum();
else
{
var temp = new SumSeries();
return CreateInstancesRecursively(N - 1);
}
}
}
}