Ethiopian multiplication: Difference between revisions

Content added Content deleted
Line 401: Line 401:


=={{header|C sharp|C#}}==
=={{header|C sharp|C#}}==
Loop Version:
<lang csharp>static void Main(string[] args)
<lang csharp>static void Main(string[] args)
{
{
Line 442: Line 443:
}</lang>
}</lang>


Recursive Version:

<lang csharp>
<lang csharp>
class Program
class Program
Line 448: Line 449:
static void Main ( string[ ] args )
static void Main ( string[ ] args )
{
{
Console.WriteLine ( EthiopianMultiplication.DoIt ( 17, 34 ) );
Console.WriteLine ( "{0}{1}{2,19}", new String('-',19),Environment.NewLine,DoIt ( 17, 34 ) );
}
}


Line 465: Line 466:
public static int DoIt ( int num1, int num2 )
public static int DoIt ( int num1, int num2 )
{
{
Console.WriteLine ( "{0,8} | {1,8}", num1, num2 );
return num1 == 1 ? num2 : DoIt ( Halve ( num1 ), Double ( num2 ) ) + (IsEven ( num1 ) ? 0 : num2 );
return num1 == 1 ? num2 : DoIt ( Halve ( num1 ), Double ( num2 ) ) + (IsEven ( num1 ) ? 0 : num2 );
}
}