Зад.1. Да се напише функция (reverse-int n), която обръща последователността на цифрите на дадено естествено число:
  • (reverse-int 1234) -> 4321
  • (reverse-int 10000) -> 1
Зад.2. Да се напише функция (palindrome? n), която проверява дали дадено естествено число е палиндром. Числата-палиндроми се четат по един и същ начин отляво-надясно и отдясно-наляво:
  • (palindrome? 12321) -> #t
  • (palindrome? 4040) -> #f
Зад.3. Да се напише функция (fib n), която изчислява n-тото число на Фибоначи:
  • (fib 0) -> 0
  • (fib 1) -> 1
  • (fib 7) -> 13
Зад.4. Да се напише функция (divisors-sum n), която намира сумата на всички делители на дадено естествено число:
  • (divisors-sum 12) -> 28 ;1+2+3+4+6+12=28
Зад.5. Да се напише функция (perfect? n), която проверява дали дадено естествено число е съвършено. Съвършени числа са тези, за които сумата на всичките им делители (без самото число) е равна на същото число:
  • (perfect? 6) -> #t ;1+2+3=6
  • (perfect? 28) -> #t ;1+2+4+7+14=28
  • (perfect? 33550336) -> #t ;1+2+...+16775168=33550336
Зад.6. Да се напише функция (prime? n), която проверява дали дадено число е просто:
  • (prime? 1) -> #f ;(!)
  • (prime? 2) -> #t
  • (prime? 101) -> #t
Зад.7. Да се напише функция (fast-expt x n), която изчислява xn по метода на бързата експонента: ако n=2k (четно число), то xn = (x2)k. Aко n=2k+1 (нечетно), то xn = x.(x2)k. Тук и рекурсивното повдигане на k-та степен също трябва да се извърши "бързо", т.е. по същия метод.
Зад.8. Да се напише функция (increasing? n), която проверява дали цифрите на дадено естествено число са в нарастващ ред, четени отляво-надясно:
  • (increasing? 12489) -> #t
  • (increasing? 4456) -> #f

Last modified: Wednesday, 21 October 2015, 9:34 PM