Python 逻辑错了吗?计算为支付首付款而储蓄的工资百分比

Python 逻辑错了吗?计算为支付首付款而储蓄的工资百分比,python,python-3.x,Python,Python 3.x,问题是使用二等分搜索来查找3年内要节省的工资部分,以支付首付款。无法使用我的代码实现测试用例。我的代码好像没有问题 每半年加薪0.07英镑 投资的年回报率为0.04 首期付款为房价的0.25% 房子的价格是100万美元 保存时间为36个月 在首付款后100美元内可节省 要满足的测试用例: 测试用例1 起薪:15万 储蓄率:0.4411 采取的步骤:12 测试用例2 起薪:30万 储蓄率:0.2206 采取的步骤:9 测试用例3 起薪:10000 三年内无法支付首付款 我得到的结果如下 测试用例1

问题是使用二等分搜索来查找3年内要节省的工资部分,以支付首付款。无法使用我的代码实现测试用例。我的代码好像没有问题

每半年加薪0.07英镑 投资的年回报率为0.04 首期付款为房价的0.25% 房子的价格是100万美元 保存时间为36个月 在首付款后100美元内可节省 要满足的测试用例:

测试用例1

起薪:15万 储蓄率:0.4411 采取的步骤:12 测试用例2

起薪:30万 储蓄率:0.2206 采取的步骤:9 测试用例3

起薪:10000 三年内无法支付首付款 我得到的结果如下

测试用例1

起薪:15万 储蓄率:0.1295 采取的步骤:13 测试用例2

起薪:30万 储蓄率:0.0647 采取的步骤:14 测试用例3

起薪:10000 三年内无法支付首付款 年薪=输入您的年薪: 年薪=年薪 总成本=1000000 半年度加薪=0.07 部分首付=0.25 r=0.04 月数=36 步骤数=0 高=10000 低=0 猜测=高+低/2 当前储蓄=0 当前储蓄-部分首付*总成本>100: 当前储蓄=0 年薪=年薪 对于i,在rangenum_个月内: 活期存款+=活期存款*r/12 当前储蓄+=年薪*猜测/10000/12 如果num_months%6==0: 年薪+=半年薪*年薪 如果当前存款<部分首付款*总成本: 低=猜测 如果猜测=10000: 打破 elif活期储蓄>部分首付*总成本: 高=猜测 步骤数+=1 猜测=高+低/2 如果guess==10000且当前储蓄<部分首付款*总成本+100: 打印36个月内无法支付首付款 其他: 打印要节省的工资百分比,猜猜/10000 打印采取的步骤数:,num_步骤
哦,我发现了问题…==

在if语句中,应将num_months替换为i,因为i是循环中使用的临时变量

对于i,在rangenum_个月内: 活期存款+=活期存款*r/12 当前储蓄+=年薪*猜测/10000/12 如果i%6==0: 年薪+=半年薪*年薪 获得的结果

测试用例1

起薪:15万 储蓄率:0.4169 采取的步骤:12 测试用例2

起薪:30万 储蓄率:0.2084 采取的步骤:13 测试用例3

起薪:10000 三年内无法支付首付款
你的意思是说二进制搜索吗?我尝试了你的代码,对于测试用例2,结果是:输入你的年薪:300000%的工资要保存为0.064727783203125采取的步骤数:14@ncica哦,是的,你是对的。很抱歉,我对以前的测试结果感到困惑code@DeveshKumarSingh是的,我对这些术语不太熟悉。那么读了之后,它是用二分法来进行二进制搜索的吗?