前幾天參加新浪的面試,遇到倆個(gè)比較有意思的面試題,特寫(xiě)出來(lái)跟大家分享一下
1.找規(guī)律的一組數(shù), 1,1,2,3,5,8...n;其實(shí)就是斐波那契數(shù)列
解決辦法有很多,遞歸很簡(jiǎn)單:
<示例代碼>
int fib(int n){
if (n == 1 || n == 2) {
return 1;
}else{
return fib(n - 1) + fib(n - 2);
}
}
int main(int argc, const char * argv[]) {
int n;
scanf("%d",&n);
printf("%d\n",fib(n));
printf("%d\n",ll(n));
return 0;
}
2.統(tǒng)計(jì)(1! + (1! + 3!) +...+ (1! + ... +(2 * n - 1)!))
<>@interface ViewController ()
@end
@implementation ViewController
/統(tǒng)計(jì)(1! + (1! + 3!) +...+ (1! + ... +(2 * n - 1)!))/
- (void)viewDidLoad {
[super viewDidLoad];
NSInteger sum4 = 0;
NSInteger n = 3;
sum4 = [self sumOfOriginEquation:n];
NSLog(@"%zd",sum4);
}
//外遞歸 - (NSInteger)sumOfOriginEquation: (NSInteger)n{
if (n >= 1) { return [self sumOfPerEquation:n] + [self sumOfOriginEquation:n - 1]; }
else{return 0;
}
}
//內(nèi)遞歸 - (NSInteger)sumOfPerEquation: (NSInteger)n{
NSInteger num1;
num1 = 1;
for (NSInteger i = 1; i <= (2 * n - 1); i++) { num1 *= i;
}
if (n == 1) {return 1;
}
return (num1 + [self sumOfPerEquation:(n - 1)]);
}