zoukankan      html  css  js  c++  java
  • C#版 大数计算器乘法

    class BigMultiply:BigCalculate
     

       {
            public override string Oper(string num1, string num2)
            {
                if (num1.Equals("0")||num2.Equals("0"))
                {
                    return "0";
                }

                List liAllNum = new List();//存储乘数每位乘法的结果
                List liCh = new List();//存储乘数每位乘法中每一位的结果

                //将长度较长的数字赋给num1,方便后面计算
                if (num1.Length < num2.Length)
                {
                    ChangeNum(ref num1, ref num2);
                }
     
                int flag;
                for (int i = num2.Length-1; i >=0; i--)
                {
                    //初始化上一位乘法中的数据
                    liCh.Clear();
                    flag = 0;
                    //计算第i位乘以第j位
                    for (int j = num1.Length - 1; j >= 0; j--)
                    {
                        liCh.Add((char)((num2[i] - '0') * (num1[j] - '0')+flag+'0'));
                        flag = (liCh[liCh.Count-1] -'0')/ 10;
                        liCh[liCh.Count - 1] = (char)((liCh[liCh.Count - 1] - '0') % 10+'0');
                    }
                    //若进位不为0,则在加进位
                    if (flag>0)
                    {
                        liCh.Add((char)(flag+'0'));
                    }
                    //添加结果集
                    liAllNum.Add(InvertOrder(new string(liCh.ToArray()))+new string('0',liAllNum.Count));
                }
                int count = 0;
                string res="0";
                //调用add方法,将每一位乘法所得的结果相加,即为结果
                BigAdd addOper= new BigAdd();
                while (count
                {
                    res = addOper.Oper(res,liAllNum[count]);
                    count++;
                }

                return res;  
            }
    }
  • 相关阅读:
    大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
    大数据学习系列(7)-- hadoop集群搭建
    .NET的DTO映射工具 AutoMapper
    大数据学习系列(6)-- zookeeper集群搭建
    大数据学习系列(5)-- 局域网yum仓库搭建
    大数据学习系列(4)-- shell编程
    大数据学习系列(3)-- 文件权限的操作
    大数据学习系列(2)-- IP网段的计算和划分
    大数据学习系列(1)-- linux之文件系统结构介绍
    MySQL之开启远程连接
  • 原文地址:https://www.cnblogs.com/qiuyeyaozhuai/p/2719087.html
Copyright © 2011-2022 走看看