讓我們直接點。我做了下面的代碼來乘以兩個數字,它「吃」我的零點!對於不涉及產品(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