为了账号安全,请及时绑定邮箱和手机立即绑定

如何在循环中降低值

如何在循环中降低值

Go
慕桂英546537 2022-09-12 20:37:21
我想做一个简单的程序来计算5年分期付款的债务分期付款。要求是:第一年和第二年银行利息为8%第三年的银行利息为9%第4年和第5年银行利息为10%输出应为:第一期和第二期付款的价值第3年之前的剩余债务第三期付款的价值第4年之前的剩余债务第四期和第五期付款的价值这是我的代码:package mainimport "fmt"func main() {    var debt = 200000000    var installment int    for i := 1; i <= 5; i++ {        var remainDebt int        if i < 3 {            installment = (debt / 5) + (debt * 8 / 100)            remainDebt = debt - installment            fmt.Println("Year", i, "is", installment)            fmt.Println("Remaining debt is", remainDebt)        } else if i == 3 {            installment = (debt / 5) + (debt * 9 / 100)            remainDebt = debt - installment            fmt.Println("Year", i, "is", installment)            fmt.Println("Remaining debt is", remainDebt)        } else if i > 3 {            installment = (debt / 5) + (debt * 10 / 100)            fmt.Println("Year", i, "is", installment)        }    }}我的代码的输出是:Year 1 is 56000000Remaining debt is 144000000Year 2 is 56000000Remaining debt is 144000000Year 3 is 58000000Remaining debt is 142000000Year 4 is 60000000Year 5 is 60000000我不知道为什么每年剩下的债务是错误的。所以,我想我要么使用了错误的语法,要么我试图做一些无法做到的事情。也许最有可能有经验的人会立即看到问题所在。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

var remainDebt int这条线应该在for循环之前,它的起始值应该是债务值。在代码中,每次迭代都会成为其默认值 0。但是在循环的每次迭代中,它应该不断减少。

行应更正如下。因为您应该减少您支付的贷款的资本金额,而不是分期利息。remainDebt = debt - instalment

`remainDebt = remainDebt - debt / 5`

您可以在此处查看更正后的代码


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信