微信号:crossincode

介绍:每天5分钟,学点简单的编程,用新的思维方式看世界.【声明:公众号搜出的另一个同名是山寨货】

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

2018-07-27 10:25 Crossin先生

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

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

翻译过来就是:

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

请问答案是多少?

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

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


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


期待各位同学提交解答。

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

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

往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。



【解答】房贷计算器

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

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

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

写成代码:

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 也提交了正确的答案(@灿夜 的代码页面打不开了)。

感谢各位同学的参与。

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




如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com


推荐阅读:

开发工具 世界杯 | 高考 | 我用Python | 知乎 | 排序 | 朋友圈 | 电影票 | 技术宅 | 火车票 | 单词表 | 押韵工具 | 新手建议 | 就业 



欢迎加入

Crossin的编程教室

crossincode.com


  请把我们分享给身边爱学习的小伙伴 :)  

点击文末“阅读原文”,查看更多学习资源

 
Crossin的编程教室 更多文章 【粉丝福利】天气太热,所以给大家送几本书 大家都是拷贝,凭什么你这么秀? 他花了14个小时找了一下长春长生们究竟卖到了哪里去 调教属于你的“贾维斯”(给自己挖了一个很大的坑) 程序化套利:天下有没有稳赚不赔的买卖?
猜您喜欢 春招面试小记。 如何成为一个卓越的程序员 为了妹子,你也是拼了! 2016年夏季互联网高端人才流动报告