算法:1!+(1!+3!)+(1!+3!+5!) + ( 1! + 3! + 5! + 7! + 9!)+....+(1!+3!+5!+ ... + m!)

-(void)touchesBegan:(nonnull NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event{

 

    //算法入口

    [self func2:9];

}

 

//计算阶乘  factor(m)= m!

-(int)factor:(int)m{

 

    int factorNum=0;

    

    if(m==0|m==1)

        return 1;

    else{

        

        factorNum=m*[self factor:m-1];

        NSLog(@"%d",factorNum);

        return factorNum;

    }

}

 

//计算  func1(m)  = 1!+3!+5!+... +m! 

-(int)func1:(int)m{

 

    int sum=0;

    for (int i=1; i<=m; i=i+2) {

        sum +=[self factor:i];

    }

    NSLog(@"%d",sum);

    

    return sum;

}

 

//计算最终和   func2(m)=1!+(1!+3!)+(1!+3!+5!) + ( 1! + 3! + 5! + 7! + 9!)+....+(1!+3!+5!+ ... + m!)

-(int)func2:(int)m{

 

    int sum=0;

    for (int i=1; i<=m; i=i+2) {

        sum +=[self func1:i];

    }

    NSLog(@"最终结果为:%d",sum);

    return sum;

}

 

posted @ 2015-08-19 17:37  乔胖胖  阅读(699)  评论(0编辑  收藏  举报