01
What does this program print?
def reverse_num(n):
rev = 0
while n > 0:
rev = rev * 10 + n % 10
n = n // 10
return rev
print(reverse_num(1234))
Output
A second helping. New patterns, new traps. Read each program carefully and write what you believe it will print.
Three short programs without recursion. Trace them on paper before reaching for the answer.
def reverse_num(n):
rev = 0
while n > 0:
rev = rev * 10 + n % 10
n = n // 10
return rev
print(reverse_num(1234))
def grade(marks):
if marks >= 90:
return "A"
elif marks >= 75:
return "B"
elif marks >= 60:
return "C"
else:
return "F"
print(grade(82))
print(grade(58))
print(grade(95))
def cube(x):
return x * x * x
def diff(a, b):
return cube(a) - cube(b)
print(diff(3, 2))
Each function calls itself, but the way it shrinks the problem is different every time. Watch carefully.
def fun(n):
if n <= 0:
return
print(n, end=" ")
fun(n - 2)
fun(7)
def fun(n):
if n == 0:
return
fun(n - 1)
if n % 2 == 0:
print(n, end=" ")
fun(6)
def count(n):
if n == 0:
return 0
return 1 + count(n // 10)
print(count(78912))
def digit_sum(n):
if n == 0:
return 0
return (n % 10) + digit_sum(n // 10)
print(digit_sum(1234))
def mult(a, b):
if b == 0:
return 0
return a + mult(a, b - 1)
print(mult(5, 4))
def fun(n):
if n == 0:
return
fun(n - 1)
print(n, end=" ")
fun(n - 1)
fun(3)
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
print(gcd(48, 18))