Esempio n. 1
0
        public void GetMaxCommonDividerTest()
        {
            var message = "INPUT = {0} RESULT = {1}";

            foreach (var item in _MaxComDividers)
            {
                var input  = string.Join(", ", item.Key);
                var result = KataBase.GetMaxCommonDivider(item.Key[0], item.Key[1]);
                Assert.True(result == item.Value, string.Format(message, input, result));
            }
        }
Esempio n. 2
0
#pragma warning disable CA1814 // Используйте массивы массивов вместо многомерных массивов
        public static string SumFracts(int[,] args)
        {
            if (args is null)
            {
                throw new ArgumentNullException(nameof(args));
            }
            if (args.Length == 0)
            {
                return(null);
            }
            var zeroLength = args.GetLength(0);
            var tArray     = new int[zeroLength, 2];

            Array.Copy(args, tArray, args.Length);
            for (var i = 0; i < zeroLength; i++)
            {
                var mD = (int)KataBase.GetMaxCommonDivider(tArray[i, 0], tArray[i, 1]);
                tArray[i, 0] /= mD;
                tArray[i, 1] /= mD;
            }
            var nmr  = 0;
            var dnmr = 1;

            for (var i = 0; i < zeroLength; i++)
            {
                dnmr *= tArray[i, 1];
            }
            for (var i = 0; i < zeroLength; i++)
            {
                var multiplier = dnmr / tArray[i, 1];
                tArray[i, 0] *= multiplier;
                nmr          += tArray[i, 0];
            }
            if (nmr % dnmr == 0)
            {
                return($"{nmr / dnmr}");
            }
            var maxDvdr = KataBase.GetMaxCommonDivider(nmr, dnmr);

            return($"[{nmr / maxDvdr}, {dnmr / maxDvdr}]");

#pragma warning restore CA1814 // Используйте массивы массивов вместо многомерных массивов
        }