大数的加法
/思路:先把两个字符串的所有字符存入数组array1,在比较数组中的元素,得到相同元素的位置存入数组sameArray;再遍历数组array1,去除元素位置属于sameArray的元素,剩下的元素存入数组array2;再转化成字符串 -(NSString *)method1WithString1:(NSString *)str1 andString2:(NSString *)str2{ //? ? NSString *str1 = @"12345"; //? ? NSString *str2 = @"34567"; ? ? NSMutableArray *array1 = [[NSMutableArray alloc] init]; ? ? NSMutableArray *array2 = [[NSMutableArray alloc] init]; ? ? NSMutableArray *sameArray = [[NSMutableArray alloc] init]; ?? ? ? ? for (int i = 0; i < [str1 length]; i++) { ? ? ? ? NSString *tmpStr = [str1 substringWithRange:NSMakeRange(i, 1)]; ? ? ? ? [array1 addObject:tmpStr]; ? ? } ?? ? ? ? for (int i = 0; i < [str2 length]; i++) { ? ? ? ? NSString *tmpStr = [str2 substringWithRange:NSMakeRange(i, 1)]; ? ? ? ? [array1 addObject:tmpStr]; ? ? } ?? ? ? ? for (int i = 0; i < array1.count - 1; i++) { ? ? ? ? NSString *compareStr1 = [array1 objectAtIndex:i]; ? ? ? ? for (int j = i+1; j < array1.count; j++) {? ? ? ? ? ? ? NSString *compareStr2 = [array1 objectAtIndex:j]; ? ? ? ? ? ? if ([compareStr1 isEqualToString:compareStr2]) { ? ? ? ? ? ? ? ? [sameArray addObject:[NSNumber numberWithInt:j]]; ? ? ? ? ? ? } ? ? ? ? } ? ? } ?? ? //? ? NSLog(@"sameArray = %@",sameArray); ?? ? ? ? for (int i = 0;i < array1.count;i++) { ? ? ? ? NSNumber *index = [NSNumber numberWithInt:i]; ? ? ? ? if (![sameArray containsObject:index]) { ? ? ? ? ? ? [array2 addObject:[array1 objectAtIndex:[index intValue]]]; ? ? ? ? } ? ? } ?? ? //? ? NSLog(@"array2 = %@",array2); ?? ? ? ? NSString *resultStr = [[NSString alloc] init]; ? ? for (NSString *obj in array2) { //? ? ? ? NSLog(@""); ? ? ? ? resultStr = [resultStr stringByAppendingFormat:@"%@",obj]; ? ? } ?? ? ? ? [array1 release]; ? ? [array2 release]; ? ? [sameArray release]; //? ? NSLog(@"resultStr = %@",resultStr); ? ? return [resultStr autorelease]; } -(NSString *)method3WithNumString1:(NSString *)a1 andNumString2:(NSString *)a2{ //? ? NSString *a1 = @"112233445566778899"; //? ? NSString *a2 = @"998877665544332211"; ?? ? ? ? NSMutableArray *arrayA1 = [[NSMutableArray alloc] initWithCapacity:MAXLEN]; ? ? NSMutableArray *arrayA2 = [[NSMutableArray alloc] initWithCapacity:MAXLEN]; ?? ? ? ? NSMutableArray *arrayV1 = [[NSMutableArray alloc] initWithCapacity:MAXLEN]; ? ? NSMutableArray *arrayV2 = [[NSMutableArray alloc] initWithCapacity:MAXLEN]; ? ? NSMutableArray *arrayV3 = [[NSMutableArray alloc] initWithCapacity:MAXLEN]; ?? ? ? ? for (int i = 0; i < [a1 length]; i++) { ? ? ? ? NSString *tmpStr = [a1 substringWithRange:NSMakeRange(i, 1)]; ? ? ? ? [arrayA1 addObject:tmpStr]; ? ? } ?? ? ? ? for (int i = 0; i < [a2 length]; i++) { ? ? ? ? NSString *tmpStr = [a2 substringWithRange:NSMakeRange(i, 1)]; ? ? ? ? [arrayA2 addObject:tmpStr]; ? ? } ?? ? ? ? for (int i = 0; i < arrayA1.count; i++) { ? ? ? ? NSString *obj = [arrayA1 objectAtIndex:arrayA1.count-1-i]; ? ? ? ? [arrayV1 addObject:[NSNumber numberWithInt:[obj intValue]]];? ? ? } ?? ? ? ? for (int i = 0; i < arrayA2.count; i++) { ? ? ? ? NSString *obj = [arrayA2 objectAtIndex:arrayA2.count-1-i]; ? ? ? ? [arrayV2 addObject:[NSNumber numberWithInt:[obj intValue]]]; ? ? } ?? ? ? ? for (int i = 0; i < MAXLEN; i++) { ? ? ? ? int num1; ? ? ? ? int num2; ? ? ? ? if (i >= arrayV1.count) { ? ? ? ? ? ? num1 = 0; ? ? ? ? }else{ ? ? ? ? ? ? num1 = [[arrayV1 objectAtIndex:i] intValue]; ? ? ? ? } ?? ? ? ? ? ? ? ? if (i >=arrayV2.count) { ? ? ? ? ? ? num2 = 0; ? ? ? ? }else{ ? ? ? ? ? ? num2 = [[arrayV2 objectAtIndex:i] intValue]; ? ? ? ? } ?? ? ? ? ? ? ? ? [arrayV3 addObject:[NSNumber numberWithInt:num1 + num2]]; ? ? } ?? ? ? ? for (int i = 0; i < MAXLEN; i++) { ? ? ? ? int numi = [[arrayV3 objectAtIndex:i] intValue]; ? ? ? ? int numi1; ? ? ? ? if (i+1 > MAXLEN-1) { ? ? ? ? ? ? numi1 = 0; ? ? ? ? }else{ ? ? ? ? ? ? numi1 = [[arrayV3 objectAtIndex:i+1] intValue]; ? ? ? ? } ?? ? ? ? ? ? ? ? if (numi >= 10 && i+1 < MAXLEN) { ? ? ? ? ? ? [arrayV3 replaceObjectAtIndex:i+1 withObject:[NSNumber numberWithInt:numi1 + numi/10]]; ? ? ? ? ? ? [arrayV3 replaceObjectAtIndex:i withObject:[NSNumber numberWithInt:numi%10]]; ?? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? } ? ? } ?? ? ? ? int z = 0; ? ? NSString *str = [[NSString alloc] init]; ? ? for (int i = MAXLEN - 1; i>=0; i--) { ? ? ? ? if (z == 0) { ? ? ? ? ? ? if ([[arrayV3 objectAtIndex:i] intValue] != 0) { //? ? ? ? ? ? ? ? NSLog(@"%d",[[arrayV3 objectAtIndex:i] intValue]); ? ? ? ? ? ? ? ? str = [str stringByAppendingFormat:@"%d",[[arrayV3 objectAtIndex:i] intValue]]; ? ? ? ? ? ? ? ? z = 1; ? ? ? ? ? ? } ? ? ? ? }else{ //? ? ? ? ? ? NSLog(@"%d",[[arrayV3 objectAtIndex:i] intValue]); ? ? ? ? ? ? str = [str stringByAppendingFormat:@"%d",[[arrayV3 objectAtIndex:i] intValue]]; ? ? ? ? } ? ? } ?? ? //? ? NSLog(@" z = %d",z); ? ? if (z == 0) { ? ? ? ? str = [str stringByAppendingFormat:@"0"]; ? ? } //? ? NSLog(@"str = %@",str); ?? ? ? ? return [str autorelease]; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |