dkoch74
BAN USERAnybody care to take a stab at the time complexity for this solution I made?
public static void PrintPageCount(int d, int k)
{
StringBuilder stb = new StringBuilder();
Console.WriteLine("d = " + d + ". k = " + k);
int lower = -1;
int upper = -1;
int dCount = 0;
for (int i = 1; dCount <= k; i++)
{
dCount += BetterCountOfDigit(i, d);
if (lower < 0 && dCount == k)
{
lower = i;
upper = i;
} else if (dCount == k)
{
upper++;
}
if (dCount <= k)
Console.Write(i + " ");
}
Console.WriteLine();
Console.WriteLine("(" + lower + ", " + upper + ")");
}
public static int CountOfDigit(int number, int digit)
{
if (number == 0)
{
if (digit == 0)
return 1;
else
return 0;
}
return (number%10 == digit ? 1 : 0) + CountOfDigit(number/10, digit);
}
Btw, all the print statements besides the one containing lower and upper are just visual niceties I added for debugging.
- dkoch74 February 03, 2015