|
|
@ -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
|