簡體   English   中英

Prolog打印數字從1到N?

[英]Prolog print numbers from 1 to N?

假設用戶為該函數提供了輸入N,我將如何打印這些數字(從1到N)(遞歸或其他方式)。

print_numbers(40)。

- > 1
- > 2
- > ...
- > 40

您要打印從1到N的數字,以便可以將print_numbers(N)轉換為print_numbers(1,N)。

現在從X到Y的print_numbers是什么?

從X到Y的print_numbers是print(X),從X + 1到N的print_numbers!

在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).

使用between/3forall/2

?- forall(between(1, 40, X), writeln(X))
1
2
3
...
39
40
true.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM