public void Tests() { var num = new StringInteger("098"); Assert.Equal("98", num.ToString()); num.Increment(); Assert.Equal("99", num.ToString()); Assert.Equal(2, num.GetNonZeroNumbers()); num.Increment(); Assert.Equal("100", num.ToString()); Assert.Equal(1, num.GetNonZeroNumbers()); Assert.True(String.Compare(num.ToString(), "101") < 0); Assert.True(String.Compare(num.ToString(), "099") > 0); }
public static int getNumberOfIntegers(string L, string R, int K) { var result = 0; var l = new StringInteger(L); l.Increment(); do { if (l.GetNonZeroNumbers() == K) { result++; } l.Increment(); } while (String.Compare(l.ToString().PadLeft(R.Length, '0'), R) <= 0); return(result % 1000000007); }