×××管家开发中在实现混合投注时使用到的高中数学组合问题,组合数是不确定的。现要求获取所有组合数据。

NSArray *array1 = [NSArray arrayWithObjects:@"1", @"2", @"3",  nil];
NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", nil];
NSArray *array3 = [NSArray arrayWithObjects:@"7", @"8", @"9",  nil];
NSArray *array4 = [NSArray arrayWithObjects:@"10", @"11", @"12",  nil];
NSArray *array5 = [NSArray arrayWithObjects:@"13", @"14", @"15",  nil];


如要获取到如下数据:

{1,4,7,10,13}、{1,4,7,10,14}、{1,4,7,10,15}、

{1,4,7,11,13}、{1,4,7,11,14}、{1,4,7,11,15}、

…………………………………………………………………………………………

…………………………………………………………………………………………

array1、array2、array3........arrayn,即个数不定。


设计的数据保存结构如下:

NSMutableArray *mutArray = [NSMutableArray array];
NSArray *array1 = [NSArray arrayWithObjects:@"1", @"2", @"3",  nil];
NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", nil];
NSArray *array3 = [NSArray arrayWithObjects:@"7", @"8", @"9",  nil];
NSArray *array4 = [NSArray arrayWithObjects:@"10", @"11", @"12",  nil];
NSArray *array5 = [NSArray arrayWithObjects:@"13", @"14", @"15",  nil];
[mutArray addObject:array1];
[mutArray addObject:array2];
[mutArray addObject:array3];
[mutArray addObject:array4];
[mutArray addObject:array5];


1.新建一个控制台输出项目工程如下:

162725785.png


2.添加一个自己的类:MyObject 类。

   1)公有函数:

- (void)matCombin:(NSArray *)array with:(NSMutableArray *)newArray;

   用于接口调用。

  2) 私有函数:

- (void)matCombin:(NSArray *)array withN:(int)n withDictionary:(NSMutableDictionary *)dic;

   用于递归。

   3)变量:

NSMutableArray *_arrayOut;

   用于调用时返回需要的数据。


3.在main类中导入上述的类并初始化其对象:

NSMutableArray *newArray = [NSMutableArray array];
MyObject *myObject = [[MyObject alloc] init];
[myObject matCombin:mutArray with:newArray];


如果需要,我们可以添加一个NSLog语句,输出newArray的值和个数。