public static int SmallerByAbsIsFirstOrSecond(MyBigNumber myNmbr1, MyBigNumber myNmbr2) { int floatPstn1 = myNmbr1.FloatPointPosition; int floatPstn2 = myNmbr2.FloatPointPosition; MyBigNumber longFloatPart, shortFloatPart; int longFloatLngth = 0; int shortFloatLngth = 0; if (floatPstn2 > floatPstn1) { longFloatLngth = floatPstn2; shortFloatLngth = floatPstn1; longFloatPart = myNmbr2; shortFloatPart = myNmbr1; } else { longFloatLngth = floatPstn1; shortFloatLngth = floatPstn2; longFloatPart = myNmbr1; shortFloatPart = myNmbr2; } string longFltStr = longFloatPart.PartDigits; string shortFltStr = MyBigNumber.AddNmbrZero(shortFloatPart.PartDigits, -1 * (longFloatLngth - shortFloatLngth)); var lsToEqual = new List <string>(2); lsToEqual.Add(longFltStr); lsToEqual.Add(shortFltStr); MyBigNumber.IndentLengthWithZeroes(lsToEqual); bool smallerLong = MyBigNumber.FirstLineSmallerThanSecond(lsToEqual[0], lsToEqual[1]); int resCmpr = 0; if (smallerLong) { if (floatPstn2 > floatPstn1) { resCmpr = 2; } else { resCmpr = 1; } } else { if (floatPstn2 > floatPstn1) { resCmpr = 1; } else { resCmpr = 2; } } return(resCmpr); }
static void Main(string[] args) { string[] strArr = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); int n = (int)Math.Round(double.Parse(strArr[0])); var numbrAtBas10 = MyBigNumber.CreateMyBigNumber(strArr[1]); var lsRmnngs = new List <string>(); string n_BaseStr = "" + n; string mainPartStr = MyBigNumber.DevideByN_baseInt(numbrAtBas10, '1'); string rmnngStr = ""; var myHlpMainPart = MyBigNumber.CreateMyBigNumber(mainPartStr); var testExitBool = false; do { var lsDvsnResults = MyBigNumber.ReturnDevisionSeparatedMdl(myHlpMainPart, n_BaseStr[0]); rmnngStr = lsDvsnResults[1].Value(); mainPartStr = lsDvsnResults[0].Value(); var lsCmprExit = new List <string>(2) { n_BaseStr, mainPartStr }; MyBigNumber.IndentLengthWithZeroes(lsCmprExit); lsRmnngs.Add(rmnngStr); myHlpMainPart = MyBigNumber.CreateMyBigNumber(mainPartStr); testExitBool = MyBigNumber.FirstLineSmallerThanSecond(lsCmprExit[0], lsCmprExit[1]); } while (testExitBool); string nBasedStr = "" + mainPartStr; for (int i = lsRmnngs.Count; i > 0; i--) { nBasedStr += lsRmnngs[i - 1]; } Console.WriteLine(nBasedStr); }