假设一年期定期利率为n%,计算一下需要过多少 年,一万元的定期存款连本带息能翻番?

def main():
for i in range (3):
n=float(input(“请输入定期利率n”))
cunkuan = 10000

笨办法,循环:

n=float(input())
cunkuan=10000
y=0
while cunkuan<20000:
    cunkuan*=n/100+1
    y+=1
print(y)

聪明办法:

import math
n=float(input())
y=math.log(2,n/100+1)
y=math.ceil(y)
print(y)

这题实际上是求解(1+n%)^y=2,y在指数位置,两边取对数即可得 y = log2(1+n%)。如果年需要整数,则对y向上取个整即可。

import math
n=float(input("请输入定期利率n"))
y=math.log(2,n/100+1)
y=math.ceil(y) # 如果需要整数则向上取整
print(y)