Allons droit au but. J'ai fait le code suivant pour multiplier deux nombres et c'est "manger" mes zéros! Cela semble bien fonctionner pour les cas qui n'impliquent pas d'avoir un produit (p) égal à zéro. Dans l'exemple, il imprime simplement "5" au lieu du "500" désiré. Je serais vraiment reconnaissant si quelqu'un voulait expliquer ce qui se passait. :)Multiplication simple
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;
}
}
Je ne comprends pas ce que vous voulez dire. : p – Codetester
Oups ... Je viens de voir mon erreur. – Codetester
Les noms de variable à une lettre vous blessent * et * moi. – arcain