Sie sehen neu in die Programmierung oder mindestens C#, so nur zum Spaß, das wird dein Geist wehen:
using System;
namespace Scenario1_2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter the number you wish to factorize");
int number = int.Parse(Console.ReadLine());
Console.WriteLine("The number you entered was {0} and it's factorial is {1}", number, Factorial(number));
Console.ReadKey(true);
}
static int Factorial(int n)
{
if (n >= 2) return n * Factorial(n - 1);
return 1;
}
}
}
Keine überall Schleifen und die Funktion calls itself.
Sie können es auch tun, wie folgt aus:
using System;
namespace Scenario1_2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter the number you wish to factorize");
int number = int.Parse(Console.ReadLine());
Console.WriteLine("The number you entered was {0} and it's factorial is {1}", number, Factorial(number));
Console.ReadKey(true);
}
static int Factorial(int n)
{
return Enumerable.Range(1, n).Aggregate((i, r) => r * i);
}
}
}
die alle Arten von verkorkste :) ... aber es macht die wichtige Arbeit bekommen bis auf eine einzige Zeile Code.
Dann ist da noch mein persönlicher Favorit, die unendliche enumerable:
using System;
namespace Scenario1_2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter the number you wish to factorize");
int number = int.Parse(Console.ReadLine());
Console.WriteLine("The number you entered was {0} and it's factorial is {1}", number, Factorials().Skip(number-1).First());
Console.ReadKey(true);
}
static IEnumerable<int> Factorials()
{
int n = 1, f = 1;
while (true) yield return f = f * n++;
}
}
}
Bewegen Sie Console.WriteLine und Readline- außerhalb der Schleife. Das oder drücken Sie weiter, bis Sie die Antwort erhalten. –
Oh ich sehe! Vielen Dank, das macht Sinn! – WarriorPrincessM
versuchen [dies] (https://dotnetfiddle.net/thhGTa) –