-
Notifications
You must be signed in to change notification settings - Fork 0
/
Piastrellamento.scm
37 lines (33 loc) · 1.06 KB
/
Piastrellamento.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
;;=============================================;;
;;Developer: Roberto Cella ;;
;;Contact me via mail: rob.uniud@gmail.com ;;
;;Follow me on Twitter: www.twitter.com/rob93c ;;
;;=============================================;;
; Definire una procedura che permetta di capire quanti
; sono i possibili modi di piastrellare un tratto
; di lunghezza n con piastrelle rosse e blu, dove
; due rosse non possono stare vicine tra di loro:
(define tass-rb ; val: intero
(lambda (n) ; n >= 0 intero
(if (< n 2)
(+ n 1)
(+ (tass-rb (- n 1))
(tass-rb (- n 2)))
)
)
)
; Definire una procedura che permetta di capire quanti
; sono i possibili modi di piastrellare un tratto
; di lunghezza n con piastrelle , dove ci sono due tipi
; di piastrelle: uno di lunghezza 1 e l'altro 2:
(define tass-pq ; val: intero
(lambda (n) ; n >= 0 intero
(cond ((= n 0)
(+ n 1))
((= n 1)
n)
(else (+ (tass-pq (- n 1))
(tass-pq (- n 2))))
)
)
)