OC中的阶乘算法,原理就是递归。
在OC中也可以用c语言来实现。
//计算组合数 C(a(总),b) = a!/b!(a-b)! A(a,b) = a!/(a-b)!
- (NSInteger)countAllTotalNumber:(NSInteger)all needNumber:(NSInteger)need{
NSInteger allJC = [self countJC:all];
NSInteger needJC = [self countJC:need];
return allJC/(needJC*[self countJC:(all-need)]);
}
//计算阶乘
- (NSInteger)countJC:(NSInteger)index{
if (index < 2) {
return 1;
} else {
return index * [self countJC:(index - 1)];
}
}