我想学习一点 OCaml,只是为了体验 C++ 和 Java 以外的编程语言。如果您帮助我完成以下程序,我将非常感激:基本上用户输入一个正整数。打印从 N 到 0 的所有整数的总和。
显然你创建了一个 integer N
,让用户输入它的值。创建一个sum
类型的变量int
。有一个for
循环,它会加N
一sum
然后递减N
的值。循环将在N
大于 1 时运行。不过,我不知道如何在 OCaml 的语法中执行此操作。
任何帮助将不胜感激。
我想学习一点 OCaml,只是为了体验 C++ 和 Java 以外的编程语言。如果您帮助我完成以下程序,我将非常感激:基本上用户输入一个正整数。打印从 N 到 0 的所有整数的总和。
显然你创建了一个 integer N
,让用户输入它的值。创建一个sum
类型的变量int
。有一个for
循环,它会加N
一sum
然后递减N
的值。循环将在N
大于 1 时运行。不过,我不知道如何在 OCaml 的语法中执行此操作。
任何帮助将不胜感激。
您描述算法的方式是您通常如何在 C++ 或 Java 中实现它。您可以在 OCaml 中以相同的方式编写它,但惯用的方式是不改变变量的递归函数,如下所示:
let rec print_sum acc n =
if n <= 0
then Printf.printf "Sum: %d\n" acc
else print_sum (acc + n) (n - 1)
调用:print_sum 0 11 ;;
编写递归函数:
n <= 0
)n-1
。