示例#1
0
        public static List <MyBigNumber> ReturnDevisionSeparatedMdl(MyBigNumber myBigNmbr, char base_N_inCHAR)
        {
            string strBase           = base_N_inCHAR.ToString();
            string intBigPart        = MyBigNumber.DevideByN_baseInt(myBigNmbr, strBase[0]);
            var    myIntPartBigNmbr  = MyBigNumber.CreateMyBigNumber(intBigPart);
            string mltplr            = "-" + strBase;
            var    myHlpBig          = MyBigNumber.CreateMyBigNumber(mltplr);
            var    myNegativeIntPart = MyBigNumber.MultiplyBy(myIntPartBigNmbr, myHlpBig);
            var    myRmnng           = MyBigNumber.Sum2MyBigNumbers(myBigNmbr, myNegativeIntPart);
            var    lsResult          = new List <MyBigNumber>()
            {
                myIntPartBigNmbr, myRmnng
            };

            return(lsResult);
        }
示例#2
0
        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);
        }