(lab 5) feat: add Recursion Types demonstration

main
Artem-Darius Weber 3 weeks ago
parent 90b3ef553b
commit 3ee1fb7479

@ -0,0 +1,34 @@
// For more information see https://aka.ms/fsharp-console-apps
printfn "Hello from F#"
let rec sumDigitsUp n =
if n < 10 then n
else (n % 10) + sumDigitsUp (n / 10)
let rec sumDigitsDown n =
let rec sumDigitsDown' n acc =
if n < 10 then acc + n
else sumDigitsDown' (n / 10) (acc + (n % 10))
sumDigitsDown' n 0
let rec sumDigitsTail' n acc =
if n < 10 then acc + n
else sumDigitsTail' (n / 10) (acc + (n % 10))
let sumDigitsTail n = sumDigitsTail' n 0
[<EntryPoint>]
let main argv =
System.Console.WriteLine("Введите число:")
let number = System.Console.ReadLine() |> int
let result1 = sumDigitsUp number
System.Console.WriteLine($"Сумма цифр (рекурсия вверх): {result1}")
let result2 = sumDigitsDown number
System.Console.WriteLine($"Сумма цифр (рекурсия вниз): {result2}")
let result3 = sumDigitsTail number
System.Console.WriteLine($"Сумма цифр (хвостовая рекурсия): {result3}")
0

@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
</Project>
Loading…
Cancel
Save