最近博主的一位朋友打算向银行存钱,赚取利息,其中有几种方案。朋友一看,光看数字,根本不知道哪个方案好,甚至用纸用笔算,也算不出来。
方案如下:
这一开始属实难倒我了,没有公式很难做出来,但我不急,我有电脑。
首先,可以把每年的钱设为Y,Y一开始可以是0,每年增加10000,到了20年后就不用加10000了,大概如下:
首先先将已知条件写成一个函数,代码如下:
def count(x):
y=0
for i in range(0,45):
if i<20:
y=(y+10000)*(x+1)
if i>=20:
y=y*(x+1)
if y>=819999 and y<=820001:
print("x的值为:",x)
print("y的值为:",y)
return 0
这里为什么要给y一个取值范围,因为利率是一个很小的数,基本是不可能刚好等于整数的,这里我将范围缩小到2,基本精确度是很高了。
接下来需要设置一个x的最大取值范围和最小取值范围
max=0.0922200
min=0.0000100
然后进行枚举x,每次加0.00000005
if __name__=='__main__':
while min<=max:
min=min+0.00000005
n=count(min)
答案就出来了
完整代码如下:
def count(x):
y=0
for i in range(0,45):
if i<20:
y=(y+10000)*(x+1)
if i>=20:
y=y*(x+1)
if y>=819999 and y<=820001:
print("x的值为:",x)
print("y的值为:",y)
return 0
max=0.0922200
min=0.0000100
if __name__=='__main__':
while min<=max:
min=min+0.00000005
n=count(min)
if n==0:
print("已解决")
break
年利率=0.039808000000629735
问题已解决!