VB.NET控制台应用程序|使用用户输入的数字显示阶乘
我的代码运行良好,但需要一些优化,而不需要任何额外的变量或循环。 输出应该是:5x4x3x2x1=120VB.NET控制台应用程序|使用用户输入的数字显示阶乘,vb.net,loops,optimization,Vb.net,Loops,Optimization,我的代码运行良好,但需要一些优化,而不需要任何额外的变量或循环。 输出应该是:5x4x3x2x1=120 Private Sub FactorialCalculation() Dim Number, Factorial As Integer Console.WriteLine("Please enter a number") Number = CInt(Console.ReadLine) Factorial = 1 Console.WriteLine
Private Sub FactorialCalculation()
Dim Number, Factorial As Integer
Console.WriteLine("Please enter a number")
Number = CInt(Console.ReadLine)
Factorial = 1
Console.WriteLine("Your number is " & Number)
If Number > 0 Then
Console.Write(Number & " X ")
For Count As Integer = 1 To Number
If (Number - Count) > 0 And (Number - Count) <> 1 Then
Factorial *= Count
Console.Write("{0} X ", Number - Count)
ElseIf (Number - Count) = 0 Then
Factorial *= Count
ElseIf (Number - Count) = 1 Then
Factorial *= Count
Console.Write(Number - Count)
End If
Next
Console.WriteLine(" = {0}", Factorial)
Else
Console.WriteLine("Please enter a positive number greater than 0")
End If
End Sub
Private Sub-factoriacalculation()
Dim数,阶乘为整数
Console.WriteLine(“请输入一个数字”)
Number=CInt(Console.ReadLine)
阶乘=1
Console.WriteLine(“您的号码是”&number)
如果数字>0,则
控制台。写入(数字和“X”)
对于计数为整数=1到数字
如果(数字计数)>0且(数字计数)为1,则
阶乘*=计数
Write(“{0}X”,Number-Count)
ElseIf(Number-Count)=0然后
阶乘*=计数
ElseIf(Number-Count)=1然后
阶乘*=计数
Console.Write(数字-计数)
如果结束
下一个
Console.WriteLine(“={0}”,阶乘)
其他的
Console.WriteLine(“请输入大于0的正数”)
如果结束
端接头
完成与您类似的示例。关键是要使用函数。我选择了递归
Sub Main()
Console.WriteLine("Please enter a number")
Dim number As Long
If Long.TryParse(Console.ReadLine, number) AndAlso number >= 0 Then
Console.WriteLine("Your number is " & number)
Try
Console.WriteLine("{0} factorial = {1}", number, fact(number))
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Else
Console.WriteLine("Please enter a positive number greater than 0")
End If
Console.ReadLine()
End Sub
Private Function fact(ByVal number As Long) As Long
Return If(number = 0, 1, number * fact(number - 1))
End Function
也可以限制在数字上也许这个问题会更好??