OC阶乘计算

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)];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容