`

拆数算法(ObjectiveC递归实现)

 
阅读更多

把一个大数拆成几个指定的小数相加,以下实现方式性能很差仅供参考:

- (NSMutableArray *)split:(NSInteger)number {
    if (number < kThree) {
        return nil;
    }
   
    if ((number-kThree)==0 || (number-kFour)==0 || (number-kFive)==0) {
        NSMutableArray *_result = [NSMutableArray array];
       
        NSMutableArray *_array = [NSMutableArray array];
        [_array addObject:[NSNumber numberWithInt:number]];
       
        [_result addObject:_array];
        return _result;
    }
   
    NSInteger _left1 = number - kThree;
    NSInteger _left2 = number - kFour;
    NSInteger _left3 = number - kFive;
   
    NSMutableArray *_total = [NSMutableArray array];
   
    NSMutableArray *_rst1 = [self split:_left1];
    if (!!_rst1 && (_rst1.count > 0)) {
        for (NSMutableArray *_a in _rst1) {
            [_a addObject:[NSNumber numberWithInt:kThree]];
        }
        [_total addObjectsFromArray:_rst1];
    }
   
    NSMutableArray *_rst2 = [self split:_left2];
    if (!!_rst2 && (_rst2.count > 0)) {
        for (NSMutableArray *_a in _rst2) {
            [_a addObject:[NSNumber numberWithInt:kFour]];
        }
        [_total addObjectsFromArray:_rst2];
    }
   
    NSMutableArray *_rst3 = [self split:_left3];
    if (!!_rst3 && (_rst3.count > 0)) {
        for (NSMutableArray *_a in _rst3) {
            [_a addObject:[NSNumber numberWithInt:kFive]];
        }
        [_total addObjectsFromArray:_rst3];
    }
   
    return _total;
}

0
4
分享到:
评论

相关推荐

    objective-c数组全排列算法

    // 递归实现全排列 + (void)permuteArray:(NSArray *)array withCurrent:(NSMutableArray *)current toArray:(NSMutableArray *)results { if (current.count == array.count) { [results addObject:[current copy...

    在 Objective C中使用 Douglas-Peucker 线逼近算法进行 路径优化_Objective C_代码_下载

    本教程将深入探讨如何在 Objective-C 中实现 Douglas-Peucker 算法,以优化路径表示,减少不必要的点,提高效率。 首先,理解 Douglas-Peucker 算法的基本原理是关键。该算法的核心思想是通过检测路径上离直线最远...

    Objective-C实现二叉树遍历算法(源代码)

    ### Objective-C 实现二叉树遍历算法 #### 一、引言 本文将详细介绍如何在Objective-C中实现一个简单的二叉树算法。这包括定义一个二叉树节点的类`BinaryTreeNode`,用于存储数据及指向左右子节点的指针;接着定义...

    Objective C 二分查找(快速排序)

    在Objective-C中,你可以创建一个名为`quickSort`的方法,接收一个数组作为参数,然后利用递归实现快速排序的过程。 ```objc - (void)quickSort:(NSMutableArray *)array left:(NSInteger)left right:(NSInteger)...

    iOS flood fill 算法

    在Objective-C中实现Flood Fill算法,可以为游戏开发、图像编辑应用等提供便利。 Flood Fill算法通常有几种不同的实现方式,如四连通、八连通和十四连通等,其中四连通只考虑上下左右相邻的像素,八连通则包括对角...

    Algorithms:使用 Objective C 进行排序和搜索的算法

    本主题聚焦于如何使用Objective-C实现排序和搜索算法,这对于提高代码效率和优化应用程序性能至关重要。 一、排序算法 1. 冒泡排序:一种简单的排序方法,通过重复遍历数组,比较相邻元素并交换位置,直到没有更多...

    swift-在Object-C中学习数据结构与算法之排序算法

    在Swift编程语言中,了解和...在"Play-With-Sort-OC-master"这个压缩包中,可能包含了这些排序算法的Objective-C实现,供开发者参考和学习。通过阅读和理解源代码,开发者可以更好地掌握这些经典排序算法的实现细节。

    fft.rar_fft_objective-c fft_傅里叶变换

    本文将深入探讨基于TMS320F2812数字信号处理器(DSP)的C语言实现的FFT算法,并结合提供的"fft.c"源代码进行解析。 傅里叶变换是数学中的一个重要概念,它将时域信号转换为频域表示,揭示了信号的频率成分。离散...

    Programming_With_Objective-C

    此外,对象可以向自己发送消息,这在实现递归算法或其他需要自我交互的场景中非常有用。对象的创建是动态进行的,可以通过不同的方式实现,例如使用初始化方法,并且可以接受参数。工厂方法提供了一种替代传统的分配...

    小游戏汉诺塔,使用Objective-C语言编写.zip

    这个项目是用Objective-C语言实现的,Objective-C是苹果公司开发的面向对象的编程语言,它是C语言的超集,添加了Smalltalk风格的消息传递机制,广泛用于iOS和Mac OS X应用开发。 在Objective-C中,汉诺塔游戏的实现...

    关于java递归的笔试题-guide_to_algorithms:算法入门指南

    流利的编程语言(例如,Java、JavaScript、Python、Ruby、PHP、Swift、Objective-C、C++、C) 对循环结构(如for和while循环)的深入了解。 对控制流的深入了解if , else , and , or 数组:查找、插入、循环 对象...

    C,C++,SWIFT,C#,Objective-C 代码快速排序demo.zip

    以下是对C、C++、Swift、C#和Objective-C中实现快速排序的详细讲解: 1. C语言实现: 在C语言中,我们可以用递归的方式来实现快速排序。首先定义一个函数用于交换元素,再定义一个函数作为主排序函数,它会调用自身...

    swift-工程中会包含一些iOS面试中的算法和数据结构相关题目

    例如,前序遍历的递归实现为:访问根节点 -&gt; 遍历左子树 -&gt; 遍历右子树。 3. **排序算法**: - 快速排序:一种高效的分治算法,选取一个基准元素,将数组分为小于和大于基准的两部分,然后对这两部分分别进行快速...

    实现 IOS 下的多种计算器应用

    这需要在计算器类中添加相应的算法逻辑,例如递归处理括号内的计算,或者实现复杂数学函数。为了提高用户体验,还可以考虑提供历史记录、复制粘贴等功能。 在计算器类中实现一个字符串检索替换方法,这可能涉及到...

    电商SKU算法

    5. OC实现:Objective-C(OC)是iOS开发的主要语言之一。在OC中,我们可以使用类、协议和枚举来实现上述的数据模型和逻辑。例如,可以定义`Product`、`Attribute`、`AttributeValue`和`SKU`类,使用分类(Category)...

    OC代码排列组合代码

    接下来,我们将深入探讨排列和组合的概念,以及如何在Objective-C(简称OC)中实现它们。 首先,排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序进行排列,形成的所有可能的m元序列。排列的数量可以用...

    OC利用栈实现数学表达式求值

    在Objective-C编程中,我们经常需要处理各种计算任务,其中包括解析和求值数学表达式。在本主题中,我们将探讨如何使用栈数据结构(Stack)来实现一个简单的数学表达式求值器,而不依赖于Apple的`NSExpression`类。...

    iOS算法:iOS数据结构算法

    本主题将深入探讨在iOS开发中常见的数据结构和算法,以及如何利用C++、Objective-C来实现它们。 首先,数据结构是组织和存储数据的方式,它影响着程序的效率和性能。以下是一些关键的数据结构: 1. **数组(Array...

Global site tag (gtag.js) - Google Analytics