8、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
- 碎碎念:最开始看到这个题,第一反应肯定采用递归,后来做到中间的时候,发现有个思维误区:递归函数求得的结果是一个个独立的数,而这些散点数之间是存在某种规律性关系,即递归关系是自己和自己建立关系。而这道题是以递归函数为基础的散点数之间的和,就需要第二步操作,采用循环添加或列表sum()函数求的最终的解。
n = int(input('n次幂:'))
x = int(input('x数:'))
def fn(n):
if n == 1:
return x
else:
return x * pow(10, n-1) + fn(n-1)
fnt = fn
total = sum([fnt(i) for i in range(1, n+1)])
print(total)
9、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。