算法: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;

}

上一篇:Linux 3.2中回写机制的变革


下一篇:canvas探照灯效果