人口增长问题

在人口基数 p0 = 1000 的小镇上,每年定期增长2%;每年有 50 个新居民来小镇居住,城镇需要多少年居民人数能大于等于1200?

第一年有:
1000 + 1000 * 0.02 + 50 => 1070 居民
第二年有:
1070 + 1070 * 0.02 + 50 => 1141 居民
第三年有:
1141 + 1141 * 0.02 + 50 => 1213 居民
所以在第三年就达到大于等于 1200

所以给定人口基数 p0,每年增长率 percent,每年新来或离开的居民人数 aug,最后的目标数 p。封装一个函数,输入以上参数,可以得到几年可以获得大于等于 p 的人数。
用递归做


function nbYear(p0, percent, aug, p) {var num = 0;// your codeif(p0 < p){p0 = p0 + p0 * percent * 0.01 + aug;num++;num += nbYear(p0, percent, aug, p)}return num;
}

测试用例
Test.assertEquals(nbYear(1500, 5, 100, 5000), 15);
Test.assertEquals(nbYear(1500000, 2.5, 10000, 2000000), 10);
Test.assertEquals(nbYear(1500000, 0.25, 1000, 2000000), 94);

遇到的问题:num清零,在一开始定义了 num = 0; 在递归的时候就会不断重复生成局部变量 num,最外层 num 返回的是 1。
如果在函数之外设置全局变量 num = 0,那么生成的结果会叠加,上一次返回的 num 数会加上这次返回的 num 数,导致结果出错。

codewar 小镇人口增长相关推荐

  1. 多伦多ajax小镇,加拿大人口普查数据公布:多伦多都市区人口600万

    加拿大统计局今天公布2016年人口普查的第一批数据,截止2016年5月10日即人口普查日,加拿大总人口:35,151,728:比上次人口普查即5年前的2011年增加170万,在G7国家中增加最快. 阿 ...

  2. LeetCode简单题之找到小镇的法官

    题目 小镇里有 n 个人,按从 1 到 n 的顺序编号.传言称,这些人中有一个暗地里是小镇法官. 如果小镇法官真的存在,那么: 小镇法官不会信任任何人. 每个人(除了小镇法官)都信任这位小镇法官. 只 ...

  3. 【青少年编程】【一级】小镇一日游

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...

  4. 云栖小镇不是“镇”,就像中关村不是“村”。小镇是一个符号,就像起建于50年前的硅谷的“谷”,和100年前爱迪生所在的门洛公园。...

    云栖小镇不是"镇",就像中关村不是"村".小镇是一个符号,就像起建于50年前的硅谷的"谷",和100年前爱迪生所在的门洛公园. 转载于:ht ...

  5. 高房价可控制人口增长与人口素质?

    写在2009经济危机的时刻.         我觉得我还是有必要在前面加一个这样的时间和大背景环境记录.因为我才发现很多房产开发商们并没有注意到这一点.         今天很偶然上了一次新浪,发现一 ...

  6. 参观云栖小镇体会_我院留学生赴云栖小镇参观学习

    2019年11月19日下午,来自日本.泰国.俄罗斯.印度尼西亚.摩洛哥.哈萨克斯坦等国的20名留学生应邀来到位于杭州市西湖区的云栖小镇参观学习,外国语学院商务英语系的师生一同前往. 留学生们在园区志愿 ...

  7. 机器学习(MACHINE LEARNING)MATLAB人口增长模型logistic参数确定

    文章目录 1 Logistic函数(又称sigmoid函数) 2 logistic回归模型 3 logistic 人口增长模型的参数确定 1 Logistic函数(又称sigmoid函数) Logis ...

  8. hive桌游中文规则_超火爆轻策桌游《小小城镇》新扩展——小金币大作为,邀你共筑繁荣小镇!...

    在一座生活着各种小动物们的森林小镇中,在镇长的带领下,这些可爱的小家伙们勤劳地利用各种有限的建筑材料,要在一块在狭小的空间上规划建设自己的家园. 2019年,AEG推出的桌游<小小城镇>超 ...

  9. matlab讨论资金积累,资金积累、国民收入与人口增长的关系综合评估

    资金积累.国民收入与人口增长的关系综合评估 摘 要 资金积累,国民收入,人口增长都是随时间连续变化的函数,可统计调查近15年的人口增长.国民收入.资金积累的实际数据,且根据题中给出的国民平均收入x与人 ...

最新文章

  1. 009_Get请求中文乱码
  2. volunteer research
  3. bilibili源码_Java开源商城源码推荐,从菜鸡到大神,永远绕不开的商城系统
  4. 让知识来指引你:序列推荐场景中以知识为导向的强化学习模型
  5. Istio Pilot架构解析
  6. Token Based Authentication using ASP.NET Web API 2, Owin, and Identity
  7. web-软件架构模式-mvc与mtv
  8. 60-30-012-使用-Kafka不停机删除topic数据(自动建立topic)md
  9. JVM 内存区域方面的面试题
  10. 填坑唯品会分布式调度Saturn
  11. 图片相似度对比在线测试,图片相似度对比 python
  12. 数据分析师面试题目_拼多多面经分享:24个「数据分析师」岗位面试题和答案解析...
  13. 2020年上半年我国互联网网络安全监测数据分析报告
  14. Apollo感知解析之MinBox障碍物边框构建
  15. 最全的硬盘修复专题帖1(转贴)
  16. windows命令大全_建议收藏!这是最全的Windows快捷键使用指南
  17. 精准识别-发票扫描仪
  18. linux rm 提示无法删除“xxxxxxx“:不允许的操作
  19. 表格找不到任何要替换的数据,不能替换受保护的工作表中的数据。
  20. TerraMaster TOS 远程命令执行(CVE-2022-24989)TerraMaster TOS 敏感信息泄露(CVE-2022-24990)

热门文章

  1. Python调用函数,带扩和和不带括号的区别
  2. 云南省8市、8洲行政区划 (2023)
  3. Excel如何快速将15位身份证号码转为18位
  4. jqury 获取第三个_使您的手机游戏成功。 第三部分:获取用户
  5. [附源码]JAVA+ssm计算机毕业设计儿童成长记录与分享系统(程序+Lw)
  6. 统计一个字符串中数字的个数
  7. SuperSlide插件的使用方法
  8. 皮一皮:男女朋友吵架的原因...
  9. 中标丨英伟达Jetson 边缘计算模块申购、中国电信5G边缘计算应急通信车购置工程等...
  10. Egret发布oppo小游戏分包加载方式