假设用户给函数输入了N,我将如何从1到N(递归或其他方式)打印这些数字。
例如
print_numbers(40)。
- > 1
- > 2
- > ...
- →40
答案 0 :(得分:2)
您希望打印从1到N的数字,因此print_numbers(N)可以在print_numbers(1,N)中进行翻译。
现在什么是从X到Y的print_numbers?
从X到Y的print_numbers是print(X)和print_numbers从X + 1到N!
在Prolog中,你会得到:
print_numbers(N) :-
print_numbers(1, N).
% general case X must be lower than Y
print_numbers(X, Y) :-
X =< Y,
writeln(X),
X1 is X + 1,
print_numbers(X1, Y).
答案 1 :(得分:2)