public static List <MBgNmbr> RtnDvisnSptdMdl(MBgNmbr myBigNmbr, char base_N_inCHAR) { string strBase = base_N_inCHAR.ToString(); string intBigPart = MBgNmbr.DvdByN_bsInt(myBigNmbr, strBase[0]); var IntPrtBgNm = MBgNmbr.CrMBigNmb(intBigPart); string mltplr = "-" + strBase; var myHlpBig = MBgNmbr.CrMBigNmb(mltplr); var myNegativeIntPart = MBgNmbr.MultiplyBy(IntPrtBgNm, myHlpBig); var myRmnng = MBgNmbr.Sum2MBgNmbrs(myBigNmbr, myNegativeIntPart); var lsResult = new List <MBgNmbr>() { IntPrtBgNm, myRmnng }; return(lsResult); }
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 = MBgNmbr.CrMBigNmb(strArr[1]); var lsRmnngs = new List <string>(); string n_BaseStr = "" + n; string mainPartStr = MBgNmbr.DvdByN_bsInt(numbrAtBas10, '1'); string rmnngStr = ""; var myHlpMainPart = MBgNmbr.CrMBigNmb(mainPartStr); var testExitBool = false; do { var lsDvsnResults = MBgNmbr.RtnDvisnSptdMdl(myHlpMainPart, n_BaseStr[0]); rmnngStr = lsDvsnResults[1].Value(); mainPartStr = lsDvsnResults[0].Value(); var lsCmprExit = new List <string>(2) { n_BaseStr, mainPartStr }; MBgNmbr.IndntLngthWZrs(lsCmprExit); lsRmnngs.Add(rmnngStr); myHlpMainPart = MBgNmbr.CrMBigNmb(mainPartStr); testExitBool = MBgNmbr.FrstLnSmllrThnScnd(lsCmprExit[0], lsCmprExit[1]); } while (testExitBool); string nBasedStr = "" + mainPartStr; for (int i = lsRmnngs.Count; i > 0; i--) { nBasedStr += lsRmnngs[i - 1]; } Console.WriteLine(nBasedStr); }