JavaScript递归算法实现将整数n分成k份,任意两份不能相同

题目:

将整数n分成k份,且每份不能为空,任意两种分法不能相同,求有多少种分法。

例如:n=7,k=3,下面三种分法被认为是相同的:(1,1,5)(1,5,1)( 5,1,1)

下面是题目截图:

题目由来:

今天公司单元测试培训,期间看到同事(之前从事的是机器学习算法工作)在做算法题,当时叫他发题目给我试试,想了二十分钟左右还是没思路就没有想下去,今晚回来无聊查了查怎么实现,发现网上没有什么答案,唯一找到的一个是用C++实现的的,这篇博客介绍的,不知道是不是我转错了(电脑没装C++编译器,好久没写C++),按照他的思路改为用JavaScript写后没成功计算,于是想用JavaScript试试实现。以下是使用JavaScript递归实现的,有兴趣的伙伴可以指点指点,有其他方法欢迎留言。

    function allotCount(n, k) {var a = []for (var i = 0; i <= 200; i++) {a[i] = []}if(a[n][k])return a[n][k]if (n == k || n-1 == k || k == 1)return a[n][k] = 1if (n < k)return a[n][k] = 0return (a[n - 1][k - 1] = allotCount(n - 1, k - 1)) + (a[n - k][k] = allotCount(n - k, k))}console.log(allotCount(7, 3))

运行结果:

改为console.log(allotCount(17,  4))后,运行结果:

JavaScript递归算法统计(将整数n分成任意两份不能相同的k份)分法的种数相关推荐

  1. python数组分成两个和相等的子集_javascript,_动态规划——把一个整数数组分成两个和相等的子集,怎么写,javascript - phpStudy...

    动态规划--把一个整数数组分成两个和相等的子集,怎么写 当数组nums=[2,3,5]时,测试通过,但当nums=[5,3,2]时,测试就不能通过,这是为什么? window.onload = fun ...

  2. JavaScript中判断为整数的多种方式

    JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的double类型一样.但实际操作中比如数组索引.位操作则是基于32位整数. 方式一.使用取余运算符判断 任何 ...

  3. JavaScript覆盖率统计实现

    主要需求 1. 支持browser & nodejs 由于javascript既能够在浏览器环境执行,也能够在nodejs环境执行,因此须要能够统计两种环境下单元測试的覆盖率情况. 2. 透明 ...

  4. python整数类型在每一台计算机上的取值范围是一样的_关于python统计一个整数列表中不同数值种类数的问题。...

    下面这段代码中,kind_num用于统计那个整数列表中有几种不同数值的整数. class Solution(object): def distributeCandies(self, candies): ...

  5. 如何在JavaScript中将浮点数转换为整数?

    我想在JavaScript中将浮点数转换为整数. 实际上,我想知道如何同时进行标准转换:截断和舍入. 而且有效,而不是通过转换为字符串和解析. #1楼 按位或运算符 可以使用按位或运算符截断浮点数,它 ...

  6. 2015 上半年 JavaScript 使用统计数据

    jQuery,作为近几年 JS 开发环境中常用的 JavaScript 框架,已经传播到 200 万的新域名,有效的提高了 4% 的市场占有率.这非常令人惊讶,因为现在越来越多的开发者转向 Angul ...

  7. python输入一个正整数、计算其各个位的数字之和_C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和。...

    点击查看C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和.具体信息 答:#include /*包含头文件*/void main() /*主函数*/{ int n, ...

  8. 统计素数并求和 (20 分)本题要求统计给定整数M和N区间内素数的个数并对它们求和。

    本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500). 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以 ...

  9. java浮点数化为整数_[Java教程]javascript浮点数转换成整数三种方法

    [Java教程]javascript浮点数转换成整数三种方法 0 2014-06-24 04:00:27 将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如 ...

最新文章

  1. 分库分表就能无限扩容吗,解释得太好了!
  2. OpenCV Gunnar Farneback的密集光流算法(附完整代码)
  3. Haproxy安装与配置
  4. Kubernetes 入门(2)基本组件
  5. css3和jQuery实现一个简单的标签页效果
  6. PAT 00-自测1. 打印沙漏(20)
  7. 《数据整理实践指南》一第2章 是我的问题还是数据的问题
  8. 百度编辑器复制微信图片无法保存
  9. 真人发音计算机在线用,文字转语音真人发声在线怎么转换?这种操作最简单
  10. 2018.5.1 差分放大电路实验
  11. 电机学他励直流发电机matlab,直流发电机综合实验指导书(全文5篇)
  12. 华为交换机 查ip冲突_华为交换机根据ip查端口号
  13. c语言调用even函数,定义一个判断奇偶数的函数even(int n),当n为偶数时返回1,否则返回0,并实现对其调用。...
  14. 谷歌十大高薪职位:首席软件工程师居首
  15. 献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法
  16. Python统计英文、中文、数字、空格等字符数
  17. 支持webrtc的摄像头
  18. Oracle存储空间管理
  19. 同步110序列检测电路
  20. OpenCV中使用Eigenfaces 或 Fisherfaces进行人脸识别

热门文章

  1. 使用spring boot +WebSocket实现(后台主动)消息推送
  2. 90 % 的 Python 开发者不知道的描述符应用
  3. 使用NSKeyedArchiver归档
  4. Gitlab7.0通知邮箱的配置(smtp)
  5. Windows Phone 8本地化多语言支持
  6. mongodb java driver 聚合框架
  7. Sring3MVC页面无刷新上传文件
  8. 4/100. Maximum Depth of Binary Tree
  9. 为Docker容器设置静态IP
  10. vs2015 行数统计