给小孩子做大数字乘法后找到的灵感。
class Program
{
static void Main(string[] args)
{
int[] intNum1;
int[] intNum2;
int tempNum = 0;
int[] intSum;
string strResult = "";
Console.WriteLine("请输入第一个数字:");
intNum1 = GetNum(Console.ReadLine());
Console.WriteLine("请输入第二个数字:");
intNum2 = GetNum(Console.ReadLine());
intSum = new int[(intNum1.Length + intNum2.Length - 1)];
for (int i = 0; i < intNum1.Length; i++)
{
for (int j = 0; j < intNum2.Length; j++)
{
intSum[i + j] = intSum[i + j] + intNum1[i] * intNum2[j];
}
}
for (int i = intSum.Length - 1; i >= 0; i--)
{
strResult = (intSum[i] + tempNum) % 10 + strResult;
tempNum = (intSum[i] +tempNum )/ 10;
}
Console.WriteLine("乘积为:{0}", strResult);
Console.ReadKey();
}
/// <summary>
/// 拆分输入的数字
/// </summary>
/// <param name="strNum">被拆分的数字</param>
/// <returns>拆分好的数组</returns>
public static int[] GetNum(string strNum)
{
int[] intTempNum = new int[strNum.Length];
for (int i = 0; i < strNum.Length; i++)
{
intTempNum[i] = Convert.ToInt16(strNum.Substring(i, 1));
}
return intTempNum;
}
}