让我们直接点。我做了下面的代码来乘以两个数字,它“吃”我的零点!对于不涉及产品(p)等于零的情况,它似乎工作正常。在示例中,它仅打印“5”而不是所需的“500”。如果有人在意解释发生了什么,我会非常感激。 :)简单的乘法运算
using System;
class Program
{
static void Main()
{
Console.WriteLine(smallNumBigNumProduct("5", "100"));
}
static string smallNumBigNumProduct(string s, string b)
{
int l = s.Length;
int f = int.Parse(s); // factor
int c = 0; // carry
string r = ""; // result
int p; // product
while(l-- > 0)
{
p = (Convert.ToInt32(b[l]) - 48) * f;
p += c;
if (p > 9)
{
r = Convert.ToString(p % 10) + r;
c = p/10;
}
else
r = Convert.ToString(p) + r;
}
if (c > 0)
{
r = Convert.ToString(c) + r;
}
return r;
}
}
我不明白你的意思。 :p – Codetester 2011-04-17 06:04:16
哎呀...我刚看到我的错误。 – Codetester 2011-04-17 06:07:54
一个字母的变量名称会伤害你*和*我。 – arcain 2011-04-17 06:16:06