加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数的加法

发布时间:2020-12-14 03:52:43 所属栏目:大数据 来源:网络整理
导读:/ 思路:先把两个字符串的所有字符存入数组 array1 ,在比较数组中的元素,得到相同元素的位置存入数组 sameArray ;再遍历数组 array1 ,去除元素位置属于 sameArray 的元素,剩下的元素存入数组 array2 ;再转化成字符串 -( NSString *)method1WithString1

/思路:先把两个字符串的所有字符存入数组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];

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读