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;  
            }
    }
  • 相关阅读:
    SQL SET NOCOUNT (Transact-SQL)
    Delphi WinAPI DragAcceptFiles、DragQueryFile、DragFinish、DragQueryPoint
    Delphi Thread线程错误:Canvas doesn't allow drawing
    Delphi ADOQuery错误:ADOQuery1:commandtext does not return a result set
    医学-药物-未分类-胃舒平(复方氢氧化铝)
    SQL 查询时间超时已过期(SQL 2000、SQL2005、SQL2008、SQL2012等)
    SQL 数据库引擎语句 sp_executesql 的使用介绍(Transact-SQL)
    android 定位代码
    Centos7开放及查看端口
    非常详细的sklearn介绍
  • 原文地址:https://www.cnblogs.com/qiuyeyaozhuai/p/2719087.html
Copyright © 2011-2022 走看看