【转载】大整数相乘

简介:

   public String Multiply(string num1, string num2)
        {
            int num1Length = num1.Length;
            int num2Length = num2.Length;

 

            //tranfor the string to int array 
            int[] inum1 = new int[num1Length];
            //先将字符串转化为整数数组(每个数字字符减去48即可) 
            for (int i = 0; i < num1Length; i++)
            {
                inum1[i] = (int)num1[i] - 48;
            }

            int[] inum2 = new int[num2Length];
            for (int i = 0; i < num2Length; i++)
            {
                inum2[i] = (int)num2[i] - 48;
            }

            int[] result = new int[num1Length + num2Length];
            for (int i = num1Length - 1; i >= 0; i--)
            {
                for (int j = num2Length - 1; j >= 0; j--)
                {
                    result[i + j + 1] += inum1[i] * inum2[j];
                    result[i + j] += result[i + j + 1] / 10;
                    result[i + j + 1] %= 10;
                }
            }
            char[] temp = new char[num1Length + num2Length];
            for (int i = 0; i < (num1Length + num2Length); i++)
            {
                temp[i] = (char)(result[i] + 48);
            }
            String sResult = new String(temp);
            return sResult;
        }

分类:  算法

本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/archive/2010/09/02/1816399.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
两个整数相加
【10月更文挑战第12天】两个整数相加
19 5
|
5月前
|
Python
NumPy 舍入小数、对数、求和和乘积运算详解
NumPy 提供五种舍入小数的方法:`trunc()`, `fix()`, `around()`, `floor()`, `ceil()`。此外,它还支持对数运算,如 `log2()`, `log10()`, `log()`,以及自定义底数的对数。NumPy 的 `sum()` 和 `prod()` 函数用于数组求和与乘积,可指定轴进行计算,`cumsum()` 和 `cumprod()` 实现累积求和与乘积。关注公众号 &quot;Let us Coding&quot; 获取更多内容。
58 2
|
6月前
|
存储 弹性计算 运维
对100 以内的所有正整数相加求和
【4月更文挑战第29天】
73 2
|
6月前
大整数的因子(利用求余)
大整数的因子(利用求余)
|
6月前
|
C++
各位相加(C++)
各位相加(C++)
33 1
|
存储
A除于B(大数相除)
A除于B(大数相除)
70 0
|
存储 C++
大整数运算(高精度运算)C/C++
大整数运算(高精度运算)C/C++
257 0
|
C++
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
116 0