我该如何解决该算法?
def change_num(n, direc, numMove):
if direc == 'back':
nums = range(10)
return nums[n-numMove]
elif direc == 'forward':
nums = range(10)
nums.reverse()
return nums[n-numMove]-1
这不适用于direc =='back'
以下是一些预期收益示例:
0 1 2 3 4 5 6 7 8 9
change_num(1,'back', 5) -> 6
change_num(5,'back', 1) -> 4
change_num(7,'forward',5) -> 2
change_num(0,'forward',5) -> 5
您了解算法的工作原理吗?我只是没有正确执行它。
最佳答案
代替'back'
和'forward'
,将更容易传递+1
向前和-1
反向。然后您的功能简化为
def change_num(n, direc, num_move):
return (n + direc * num_move) % 10
关于python - 操纵数字算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6064462/