gpt4 book ai didi

ios - 数组中的 NSNumber,ios

转载 作者:行者123 更新时间:2023-11-28 21:23:28 26 4
gpt4 key购买 nike

我正在尝试了解如何使用 nsnumber 将数字放入数组中。我坚持的确切事情是,要在数组中构建序列,我们将需要一个循环。在创建序列数组和返回它之间,声明一个 for 循环,其计数器受索引 + 1 限制并递增 1。由于序列需要前两个数字来计算下一个数字,因此我们需要对序列进行素数运算。我们将需要在循环的前两次迭代中手动传入@0 和@1。这是我目前所拥有的。

(NSArray *)arrayWithFibonacciSequenceToIndex:(NSUInteger)index
{
NSMutableArray *sequence = [NSMutableArray array];

for(NSUInteger i = 0; i < 1; i++)
{
index = i+1;

}

return sequence;
}

我走在正确的轨道上吗?我不确定我的 for 循环是否正确。我是将序列放入 for 循环并在其中添加 nsnumber @0 和 @1,还是将这些数字放入循环外的序列?

最佳答案

要在 NSArray 中插入数字,您必须将它们包装在 NSNumber 中:

NSInteger a = 5;
NSNumber number = @(a); // ou @5;

要对 2 个 NSNumber 执行数学运算,您必须先将它们转换为整数(或 double 、 float ...)

NSNumber * number1 = @1;
NSNumber * number2 = @6;
NSInteger sum = [number1 integerValue] + [number2 integerValue];

对于 fib 问题,你的循环是正确的。我的想法是:我在 for 循环中添加我的值,如果我添加第一个或第二个元素,那么我放一个 0,否则我对最后 2 个元素求和:

- (NSArray *) fibbonacciSequenceWithSize:(NSInteger)size
{
NSMutableArray * result = [NSMutableArray new];

for(NSInteger idx = 0; i < size ; i ++)
{
// first 2 numbers of fib sequence are 1
if(idx == 0 || idx == 1)
{
[result addObject:@1];
}
else
{
// Add the 2 previous number
// F2 = F1 + F0
NSinteger next = [result[idx - 2] integerValue] + [result[idx - 1] integerValue];

[result addObject:@(next)];
}
}
return [result copy]; // copy the NSMutableArray in a NSArray
}

关于ios - 数组中的 NSNumber,ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38987758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com