如何在目标c中写因子

时间:2013-04-06 14:57:43

标签: objective-c loops factorial

我一直在读一本编程书,它希望我写一个列出前10个阶乘数表的程序。我一直在尝试过去45分钟,但无法想出解决方案。请帮忙!我很确定该程序涉及使用循环。

1 个答案:

答案 0 :(得分:3)

计算阶乘的最简单方法是使用递归函数或简单循环,如下所示。我会告诉你如何在表格中列出信息,因为有很多方法可以给那只猫皮肤。

头文件功能声明:

-(int)factorialRecursive:(int)operand;
-(int)factorialLoop:(int)operand;

实施文件功能声明:

-(int)factorialRecursive:(int)operand
{
    if( operand == 1 || operand == 0) {
        return(1);
    } else if( operand < 0 ) {
        return(-1);
    }

    return( operand * [self factorialRecursive:operand-1] );
}

-(int)factorialLoop:(int)operand
{

    if( operand == 1 || operand == 0) {
        return(1);
    } else if( operand < 0 ) {
        return(-1);
    }

    int factorial = 1;
    for(int i = operand; i > 1; i-- ) {
        factorial *= i;
    }

    return( factorial );

}

示例电话:

int factNumber = 10;
NSLog(@"%d! = %d",factNumber,[self factorialRecursive:factNumber]);
NSLog(@"%d! = %d",factNumber,[self factorialLoop:factNumber]);