博客
关于我
Objective-C实现ugly numbers丑数算法(附完整源码)
阅读量:793 次
发布时间:2023-02-20

本文共 1218 字,大约阅读时间需要 4 分钟。

Objective-C实现丑数(Ugly Number)算法

丑数是指仅由质因数2、3和5组成的正整数。丑数序列包括:1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 33, 34, 35, 36, 40, 42, 45, 48, 50, 54, 60, 64, 65, 66, 68, 70, 72, 75, 76, 78, 80等。

以下是使用Objective-C通过动态规划生成丑数的完整代码示例:

代码示例:UglyNumberGenerator.m

@interface UglyNumberGenerator : NSObject

@property (nonatomic, strong) NSArray *uglyNumbers;

  • (NSArray *)generateUglyNumbersUpTo:(int)number;

    if (number <= 1) {return [NSArray array];}

    self.uglyNumbers = [self generateUglyNumbersUpTo:2];NSMutableArray *result = [self.uglyNumbers mutableCopy];

    for (int i = 3; i <= number; i++) {if ([self isUgly:i]) {[result addObject:i];}}

    return [result sortedArray];}

  • (BOOL)isUgly:(int)n {return ([n % 2 == 0] || [n % 3 == 0] || [n % 5 == 0]) && ![self isUgly:[n / 2] || [n / 3] || [n / 5]];}

  • (NSArray *)generateUglyNumbers {return [self generateUglyNumbersUpTo:75];}

  • (void)printUglyNumbers {NSLog(@"丑数序列:%@", [self generateUglyNumbers]);}

  • (void)test {[self printUglyNumbers];}

@end

代码解释:

  • 生成丑数的方法:generateUglyNumbersUpTo:number 该方法根据给定的上限生成所有丑数。
  • 判断是否为丑数的方法:isUgly:n 检查一个数字是否仅由2、3、5组成。
  • 主要生成方法:generateUglyNumbers 调用生成丑数的递归方法,返回所有丑数。
  • 测试方法:printUglyNumbers 打印丑数列表,test方法用于调用测试。
  • 通过上述代码,可以轻松生成丑数序列,适用于需要用丑数的应用场景。

    转载地址:http://tuifk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现A-Star算法(附完整源码)
    查看>>
    Objective-C实现all combinations所有组合算法(附完整源码)
    查看>>
    Objective-C实现An Armstrong number阿姆斯特朗数算法(附完整源码)
    查看>>
    Objective-C实现anagrams字谜算法(附完整源码)
    查看>>
    Objective-C实现ApproximationMonteCarlo蒙特卡洛方法计算pi值算法 (附完整源码)
    查看>>
    Objective-C实现area under curve曲线下面积算法(附完整源码)
    查看>>
    Objective-C实现armstrong numbers阿姆斯壮数算法(附完整源码)
    查看>>
    Objective-C实现atoi函数功能(附完整源码)
    查看>>
    Objective-C实现average absolute deviation平均绝对偏差算法(附完整源码)
    查看>>
    Objective-C实现average mean平均数算法(附完整源码)
    查看>>
    Objective-C实现base64加密和base64解密算法(附完整源码)
    查看>>
    Objective-C实现base64加解密(附完整源码)
    查看>>
    Objective-C实现base85 编码算法(附完整源码)
    查看>>
    Objective-C实现basic graphs基本图算法(附完整源码)
    查看>>
    Objective-C实现BCC校验计算(附完整源码)
    查看>>
    Objective-C实现bead sort珠排序算法(附完整源码)
    查看>>
    Objective-C实现BeadSort珠排序算法(附完整源码)
    查看>>
    Objective-C实现bellman ford贝尔曼福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>
    Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
    查看>>