美文网首页
iOS 大数相乘

iOS 大数相乘

作者: LV大树 | 来源:发表于2021-02-05 22:02 被阅读0次
-(NSString *)bidnumbstring:(NSString*)a multibyaBignumString:(NSString*)b{
    
    if (a.length==0 || b.length==0) {
        return @"0";
    }
     
    
    NSMutableArray *result = [NSMutableArray arrayWithCapacity:a.length+ b.length];
     
    NSMutableArray *n1 = [NSMutableArray arrayWithCapacity:a.length];

    NSMutableArray *n2 = [NSMutableArray arrayWithCapacity:b.length];
    
    //把char转换成int数组。
    
    for (int i =0; i < a.length; i++){
        NSString *abb = [a substringWithRange:NSMakeRange(i,1)];
        n1[i] = @([abb intValue]);
    }
    for (int i =0; i < b.length; i++){
        NSString *bcc = [b substringWithRange:NSMakeRange(i,1)];
        n2[i] = @([bcc intValue]);
    }

    for (int i = 0; i< a.length; i++) {
        for (int j = 0; j< b.length; j++) {
            result[i+j] =@( [n1[i] intValue]  *[ n2[j] intValue]);
        }
    }

    for (int i = result.count- 1; i > 0; i--) {
        result[i-1]  = @( [result[i-1] intValue] + [result[i] intValue] /10);
        result[i] = @( [result[i] intValue] % 10);
    }

    
    NSString* resultStr = @"";

    for (int i = 0; i < result.count - 1; i++) {

         resultStr = [NSString stringWithFormat:@"%@%@",resultStr,result[i]];

    }

    return resultStr;
    
    return  @"";
}

相关文章

  • iOS 大数相乘

  • 大数相乘--golang简单实现

    大数乘法之golang实现所谓大数相乘(Multiplication algorithm),就是指数字比较大,相乘...

  • 大数相乘

    所谓大数相乘(Multiplication algorithm),就是指数字比较大,相乘的结果超出了基本类型的表示...

  • 大数相乘

  • 大数相乘

    两个大数相乘,这两个大数分别是a和b,现在分割成两部分,每一部分都是N位,假设是10进制的,其实对于2进制也同样适...

  • 大数相乘

  • 大数相乘

    别忘了把字符串反转便于求导,还有去除前面的0的时候别忘了结果本来就为0的情况,两个数相乘最长长度为len1+len2。

  • 大数相乘

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示...

  • 小算法集锦 : 20行代码实现大数相乘

    1.大数相乘 1.1 js 版本 (不计算注释只需要20行) 1.2 C语言 大数相乘 无依赖 简单的 js 转...

  • 大数相乘算法

    1、计算两个大数相乘的结果。2、算法流程:(1)大数可能超出任何一种整数类型,会引发溢出问题,所以用字符串的格式存...

网友评论

      本文标题:iOS 大数相乘

      本文链接:https://www.haomeiwen.com/subject/dcagtltx.html