本文共 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
代码解释:
通过上述代码,可以轻松生成丑数序列,适用于需要用丑数的应用场景。
转载地址:http://tuifk.baihongyu.com/