有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新 开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
NSMutableArray *array = [[NSMutableArray alloc]init];
//100个集合
for (int i =1 ; i<=100;i++) {
[array addObject:[NSNumber numberWithInt:i]];
}
//思路:1...14 14退出,15当做1继续从头开始,循环,
//相当于循环14次,删除最后一次的数,循环
//把前13个数依次放到集合的末尾,将第一个数删除(其实第一个就是14)
//依次类推,把前13个数依次放到集合的末尾,将第一个数删除
while ([array count] >1) {
for (int i =0; i<13; i++) {
[array addObject:[array firstObject]];
[array removeObjectAtIndex:0];
}
[array removeObjectAtIndex:0];
}
NSLog(@"%@",array);