首页 > 技术文章 > [2021 Spring] CS61A lost01:Control and Environments

ikventure 2021-06-16 14:30 原文

地址:https://inst.eecs.berkeley.edu/~cs61a/sp21/lost/lost01.pdf
lost是对课程内容的补充练习,重在练习。

def is_prime(n):
    """
    >>> is_prime(10)
    False
    >>> is_prime(7)
    True
    """
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

def is_prime2(n):
    return n > 1 and smallest_factor(n) == n

def smallest_factor(n):
    k = 2
    while k <= n:
        if n % k == 0:
            return k
        k += 1

def ordered_digits(x):
    '''
    >>> ordered_digits(5)
    True
    >>> ordered_digits(11)
    True
    >>> ordered_digits(127)
    True
    >>> ordered_digits(1357)
    True
    >>> ordered_digits(21)
    False
    >>> result = ordered_digits(1375) # Return, don't print
    >>> result
    False
    '''
    xl = list(str(x))
    return xl == sorted(xl)

def rect(area, perimeter):
    """Return the longest side of a rectangle with area and perimeter that has integer sides.
    >>> rect(10, 14) # A 2 x 5 rectangle
    5
    >>> rect(5, 12) # A 1 x 5 rectangle
    5
    >>> rect(25, 20) # A 5 x 5 rectangle
    5
    >>> rect(25, 25) # A 2.5 x 10 rectangle doesn't count because sides are not integers
    False
    >>> rect(25, 29) # A 2 x 12.5 rectangle doesn't count because sides are not integers
    False
    >>> rect(100, 50) # A 5 x 20 rectangle
    20
    """
    side = 1
    while side * side <= area:
        other = round(perimeter / 2 - side)
        if other == area / side:
            return other
        side = side + 1
    return False

推荐阅读