private static float _expToLevelBase = 100f;
private static float _expToLevelMult = 1.25f;
public static void Main()
for (int ii = 0; ii < 100; ii++)
int result1 = GetExpReq(ii);
int result2 = GetExpReqClosed(ii);
string result = (result1 == result2) ? "OK!" : "NO.";
Console.WriteLine(ii + ": " + result + " Loop Method: " + result1 + " Closed Method: " + result2);
public static int GetExpReq(int level)
float total = _expToLevelBase;
float lastHorribleNumber = _expToLevelBase;
for (int i = 0; i < level; i++)
lastHorribleNumber = lastHorribleNumber * _expToLevelMult;
total += lastHorribleNumber;
public static int GetExpReqClosed(int level)
return (int)(_expToLevelBase*(1-Math.Pow(_expToLevelMult,level + 1))/(1-_expToLevelMult));