|
CS 116 Tutorial 5: Abstract List Function and Accumulative Recursion
Reminders: Assignment 05 is due on Wed, Feb 26th at 10am
-
Write an accumulatively recursive function record_digit(n)
that returns a list of integers of length 10, with each index from 0 to 9
represents a corresponding digit's total appearances in the integer
n .You cannot use L.count() .
For example,
record_digit(19990514)=>[1,2,0,0,1,1,0,0,0,3]
Write an accumulatively recursive function count_max that consumes a nonempty list
of numbers alon and returns the number of times the largest number in alon
appears.
For example,
count_max([1, 3, 5, 4, 2, 3, 3, 3, 5]) => 2
since the largest element of the list, 5 appears twice. Your function should pass
through the list only once.
Write a function smaller consumes a non-empty string called s containing
only numeric characters by repeatedly removing the larger of the first and last characters in s .
if the first and the last number are the same, remove the last one.
For example, starting from "5284 , compare "5" and "4" , and recurse on
"284" , which will compare "2" and "4" , and recurse on "28" .
Comparing "2" and "8" , leads to recursing on "2" , which is the answer
(since it is a string of length 1).
Note: min is not allowed to use in this question.
For example:
smaller("4325") => "2"
smaller("1") => "1"
smaller("2325") => "2"
-
Given a list L of positive integers, what is the skip-value of the list?
- If
L is empty,the skip value is 0.
- If
L is not empty:
- Add one to the current skip value
- Move ahead in the list by
n (where n is the first element in the list) and repeat the process
Write a function skip_value to calculate the skip value of the list L .
For example:
skip_value([]) => 0
skip_value([1,1,1]) => 3
skip_value([2,100,1]) => 2
-
Develop an accumulatively recursive function list_to_num that consumes a nonempty list,
digits, of integers between 0 and 9, and returns the number corresponding to digits.
For example,
list_to_num([9, 0, 8]) => 908
list_to_num([8, 6]) => 86 .
list_to_num([0, 6, 0]) => 60 .
|