将正整数n划分成一系列正整数之和,求正整数的不同划分个数

//将正整数n划分成一系列正整数之和,求正整数的不同划分个数
//n表示划分的整数,m表示划分的整数最大值
function q(n,m){
    if(n<1||m<1){
        return 0;
    }else if(n===1||m===1){
        return 1;
    }else if(n<m){
        return q(n,n)
    }else if(n===m){
        return q(n,m-1)+1
    }else{
        return q(n,m-1)+q(n-m,m)
    }
}
//例如:正整数6有11种划分
console.log(q(6,6));

  

原文地址:https://www.cnblogs.com/caoke/p/10963037.html

时间: 2024-08-12 06:06:21

将正整数n划分成一系列正整数之和,求正整数的不同划分个数的相关文章

C++初学者---根据输入的任何一个正整数,输出可能被表示的连续正整数

题目描述:一个正整数有可能可以被表示为 n(>=2) 个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列. 输入数据:一个正整数,以命令行参数的形式提供给程序. 输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始.以从小到大的顺序打印.如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列.此外,序列不允许重复,序列内的整数用

25.(需要好好研究研究)输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值

#include<iostream> using namespace std; int main() { int m,n,i,j=1,k=0,a[20],x,y; cout<<"请输入一个整数:"; cin>>m;//输入的数为m y=m;//先将m赋值给y,将原始输入的数保护起来 for(i=1;;i++)//中间的判断条件可以不要,就变成了死循环 { j*=10; n=m/j; a[i]=n; k++;//用于记录有几位数 if(n<1)/

求正整数2和n之间的完全数

[题目描述] 求正整数22和nn之间的完全数(一行一个数). 完全数:因子之和等于它本身的自然数,如6=1+2+36=1+2+3 [输入] 输入n(n≤5000)n(n≤5000). [输出] 一行一个数,按由小到大的顺序. [输入样例] 7 [输出样例] 6 1 #include<cstdio> 2 #include<cmath> 3 int n; 4 bool perfect(int a){ 5 int sum=1; 6 for(int i=2;i<=sqrt(a);i+

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字的最小的一个

/** * @Version 1.0.0 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, * 打印能拼接出的所有数字的最小的一个.例如输入{3,32,321,4},则打印最小的数字是 * 321323 * * 其实就是一次排序,只是比较大小的方式与数值比较有所不同 * 这里采用冒泡排序的方式 */public class Pro33 { @MyAnswer public static void f(int array[]){ for(int i=0;i<array.length-1

BZOJ 1225: [HNOI2001] 求正整数( dfs + 高精度 )

15 < log250000 < 16, 所以不会选超过16个质数, 然后暴力去跑dfs, 高精度计算最后答案.. ------------------------------------------------------------------------------ #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace s

在生成一系列相关内容后,签名文件生成

然后上传刚刚生成的CSR文件 按下Generate后,稍等一会,证书就生成了,你可以下载然后安装到本机. 3. AppID 需要强调一下的是,这里的AppID和常说的AppleID不是一个概念.AppleID是用户在苹果的账号,在AppStore上下载应用时,需要使用的就是这个账号.而AppID则是应用的身份证,用来表明应用的ID. 在证书生成后,下一步就是生成AppID,相当于帮你想开发的应用生成一张身份证. AppID需要你起一个名字以方便描述.这里不能输入特殊字符. AppID还分成带通配

想请问两个有关子网划分的问题。速求大神

1.某公司申请了一个B类网络好,网管把子网掩码设19位,问,最多能划分的子网数是________? 2.将一个C类网段划分成若干大小相等的子网,不限子网大小,有________种划分方法? 想请问两个有关子网划分的问题.速求大神

子网划分精讲和可变长子网(VLSM)划分实例分析

一.子网划分的目的: 满足不同网络对IP地址的需求 实现网络的层次性 节省IP地址二. 子网划分的思路:#1.步骤:我们创建/划分子网的时候,一定是根据一定的要求创建的,这个要求就是我们实际的网络需求.一般我们按如下步骤来明确我们的网络需求: (1).确定每个子网所需的主机数:每个主机一个;每个路由器接口一个.(2).确定需要的网络ID数:(网段)每个LAN子网一个;每条广域网连接一个.(3).根据上述需求,确定如下内容:一个用于整个网络的子网掩码;每个物理网段的唯一子网ID;每个子网的主机范围

NYOJ 746 - 正整数n划分为m段,求m段的最大乘积 【区间DP】

整数划分(四) 时间限制:1000 ms  |  内存限制:65535 KB 描述 给出两个整数 n , m ,要求在 n 中加入m - 1 个乘号,将n分成m段,求出这m段的最大乘积 输入 第一行是一个整数T,表示有T组测试数据接下来T行,每行有两个正整数 n,m ( 1<= n < 10^19, 0 < m <= n的位数): 输出 输出每组测试样例结果为一个整数占一行 样例输入 2 111 2 1111 2 样例输出 11 121 #include <cstdio>