前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每周一坑】鸡兔同笼 +【解答】房贷计算器

【每周一坑】鸡兔同笼 +【解答】房贷计算器

作者头像
Crossin先生
发布2018-08-20 15:06:15
6430
发布2018-08-20 15:06:15
举报
文章被收录于专栏:Crossin的编程教室

本期的题目,来自一本古老的书籍《孙子算经》,是一道很经典的数学题:

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

翻译过来就是:

有若干只鸡和兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?

请问答案是多少?

从纯数学角度来看有不少种解法。那么用代码实现的话,你会选择怎样写呢?

附加题:输入头数 m 脚数 n,输出鸡的数量 c兔子的数量 r,或提示无解

参考代码将在下周给出,也可学习其他同学在留言中提交的代码。

期待各位同学提交解答。

提交代码可以使用 paste.ubuntu.com

codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。


【解答】房贷计算器

上次的题目,从编码的层面来说并没有什么难度,只要你自己推导出或从网上找到计算公式,然后正确实现即可。

等额本息 每月月供额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1] 总利息=还款月数×每月月供额-贷款本金

等额本金 首月还款=贷款本金÷还款月数+贷款本金×月利率 每月减额=贷款本金÷还款月数×月利率 总利息=[(总贷款额÷还款月数+总贷款额×月利率)+总贷款额÷还款月数×(1+月利率)]÷2×还款月数-贷款本金

写成代码:

代码语言:javascript
复制
money = int(input('贷款金额(万):'))
year = int(input('贷款期限(年):'))
rate = float(input('年利率(%):'))
factor = float(input('浮动倍数:'))

month = year * 12
month_rate = rate / 100 * factor / 12
money *= 10000

month_pay = (money * month_rate * (1 + month_rate) ** month) / ((1 + month_rate) ** month - 1)
all_pay = month_pay * month

print('等额本息')
print('每月还款 %.2f' % month_pay)
print('总支付利息 %.2f' % (all_pay - money))

month_pay = money / month + money * month_rate
pay_down = money / month * mo nth_rate
all_pay = ((money / month + money * month_rate) + money / month * (1 + month_rate)) / 2 * month

print('等额本金')
print('首月还款 %.2f' % month_pay)
print('每月递减 %.2f' % pay_down)
print('总支付利息 %.2f' % (all_pay - money))

@王炎 和 @王文亚 同学都实现了 GUI 的版本,效果很不错

(在我的电脑上显示比例稍稍有点不正常)

@迫耸、@L 也提交了正确的答案(@灿夜 的代码页面打不开了)。

感谢各位同学的参与。

期待在下一期中看到你的代码!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档