/**
* Combined2.java
*
* 递归法求n个数两两组合的个数.
* 公式=n*(n-1)/2,其中n>=1.
*
* @author Administrator
*/
public class Combined2 {
public static int combined2(int n) {
if(n > 2)
return (n - 1) + combined2(n - 1);
else if(n == 2)
return 1;
else
return 0;
}
public static void main(String[] args) throws NumberFormatException {
int n = Integer.parseInt(args[0]);
System.out.println(combined2(n));
//System.out.println(n*(n-1)/2);
}
}
改进后:
public static int combined2(int n) {
if(n >= 2)
return (n - 1) + combined2(n - 1);
else
return 0;
}
简化后的代码:
public static int combined2(int n) {
if(n > 1)
return (n - 1) + combined2(n - 1);
return 0;
}
用循环消除递归:
public static int combined2(int n) {
int cn = 0;
for(int i = 1; i <= n; i ++)
cn = n-i + cn;
return cn;
}
最直接的公式法:
public static int combined2(int n) {
return n*(n-1)/2;
}
分享到:
相关推荐
3. **二项式定理**(Binomial Theorem):这是组合数学中非常重要的一个公式,描述了任意两个数的幂次之和的展开形式,即(a+b)^n = Σ(nCr * a^(n-r) * b^r),其中0≤r≤n,nCr为组合数。 4. **组合数**...
- 千位数为1或0,百位数和十位数皆不为2,个位数为2的正整数个数为:2×9×9×1=162; - 因此,满足题意的整数个数为:200+180+162=542。 ### 2. 在所有7位01串中,同时含有“101”串和“11”串的有多少个? **...
根据描述,程序输入包括两个部分,首先是数字个数N,紧接着是N个非零的个位数字。例如,给定输入3,随后的数字为2、8和5。程序需要计算出所有这些数字两两组合成的两位数的总和。对于给定的示例,组合包括25、28、52...
- **组合计数**:题目1.4中,要求x和y之间有5个字母的排列数,可以使用组合公式C(n, k)来确定x和y之间的字母数,然后乘以剩余字母的排列数。 4. **递推关系**: - **等差数列求和**:题目1.6涉及的是等差数列的...
基本的容斥原理公式可以表示为:如果A,B,...,X是互不相交的集合,那么它们的并集的元素个数可以表示为: \[ |A \cup B \cup ... \cup X| = \sum_{i=1}^{n} |A_i| - \sum_{i |A_i \cap A_j| + \sum_{i |A_i \cap ...
可以看到,这个公式首先将每个集合的元素个数加起来,然后减去两两交集的元素个数,再加回三三交集的元素个数,以此类推,直到所有可能的交集都被考虑为止。每次增加或减少交集的元素个数时,都要乘以(-1)^(k-1),...
欧拉函数是数论中一个重要的概念,它是指小于或等于 n 的正整数中与 n 互素的数的个数。欧拉函数的计算可以使用以下公式:φ(n) = n * (1 - 1/p1) * (1 - 1/p2) * ... * (1 - 1/pk),其中 p1, p2, ..., pk 是 n 的...
- \(n^2\)的正因数个数为\((2a_1+1)(2a_2+1)\cdots(2a_l+1)\)。 - 由于每个因子\(2a_i+1\)都是奇数,因此它们的乘积也是奇数。 - 故\(n^2\)的正除数的数目是奇数。 **1.15 试求从1到1000000的整数中,0出现的...
- **组合**:从n个不同元素中取出m(m≤n)个元素的所有不同组合的个数计算公式为:C(n, m) = n! / (m!(n-m)!)。 - **加法原理**:如果事件A可以通过m种方法实现,事件B可以通过n种互不相同的方法实现,那么事件A和B...
1.5.6. 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数 ....... 116 1.5.7. 输入一个表示整数的字符串,把该字符串转换成整数并输出.............. 118 1.5.8. 给出一个数列,找出其中最长的单调...
容斥原理,也被称为Inclusion-Exclusion Principle,是组合数学中的一个重要概念,用于精确计算在...通过理解和掌握这个原理,我们可以解决许多复杂的问题,如计算排列、组合以及在有约束条件的集合中的元素个数等。
- (1)从100个两两互质的数中取出2个数,其商的个数,这是一个排列问题,因为商的大小取决于选取的两个数的顺序。 - (2)由0,1,2,3组成能被5整除且无重复数字的四位数,是排列问题,因为数字的位置影响着是否能被5...
15. **最小的k个数**:找出数组中最小的k个数,可以使用快速选择或堆排序方法。 16. **连续子数组的最大和**:求解数组中连续子数组的最大和,可以使用Kadane's Algorithm。 17. **环形连续子数组的最大和**:在...
5. 相反数、倒数和绝对值:一个数的相反数在其前加负号,例如5的相反数是-5;倒数是1除以该数,5的倒数是1/5;绝对值是不考虑正负的数值,5的绝对值是5。 6. 非正非负的数:0既不是正数也不是负数,其相反数是0。 ...
接下来是关于素数的统计性质,例如素数个数的估计,它大约为n/ln(n)个,表明素数的分布随着数字的增大而稀疏。素数的间隔期望是O(logn),这意味着随着数字的增长,素数之间的间隔越来越大。 在数论中,幂取模是一个...
- 4个小朋友进行羽毛球比赛,两两之间比赛一场,即进行组合的个数为C(4,2),计算得到是6场。 - 要使6×9的积是三位数,百位上只能填1,十位上只能填0,因为10×9=90,是最小的三位数。 2. 选择题: - 明明从7:30...
9. 第九题中,第三个学生通过排除法得知自己的数是144,因为144是其他两个数的和,且其他两个数之和等于第三个数。由此可以推出其他两个数。 10. 第十题是概率问题,结合条件概率,可以计算出蓝色车是肇事车的概率...
3. **数论**:问题中出现了"首位数字是 1,且恰有两个数字相同的四位数",这需要考生掌握数的排列组合知识,计算特定条件下的数的个数。 4. **复数**:题中提到"复数",并结合等差数列的知识,要求考生理解复数的...
1. **集合论**:在第1题中,讲解了集合的非空子集个数的计算方法,当集合有n个元素时,非空子集的个数为2^n - 1。对于集合A={0, 1, 2},它的非空子集包括所有可能的组合,共7个。 2. **复数运算**:第2题涉及复数的...
15. 数列中和为N+1的数对:使用哈希表记录每个数出现的次数,遍历一次数组即可。 【谷歌面试题解析】 16. 计算序列Q:根据给定的a和b,生成所有可能的公倍数,可以使用循环和条件判断。 17. 字符串排序:可以先将...