Objective c 从目标c中的一组Int值中查找最接近的Int值
目标c数学函数题 我得到了一个x值,我想与集合中的其他值进行比较,然后确定我的x值最接近的集合中的哪个值 例如,假设我有整数5,10,15,20,25Objective c 从目标c中的一组Int值中查找最接近的Int值,objective-c,math,int,Objective C,Math,Int,目标c数学函数题 我得到了一个x值,我想与集合中的其他值进行比较,然后确定我的x值最接近的集合中的哪个值 例如,假设我有整数5,10,15,20,25 确定这些数字中哪一个最接近7的最佳方法是什么?Objective-C和Cocoa都不能为您提供任何解决方法。您可以将int存储在一个普通的int数组中,也可以将每个int封装在NSNumber中,并将封装器存储在NSArray中 如果要对数组进行多次探测,请提前对其进行一次排序,然后对每个探测使用二进制搜索(标准C函数bsearch或Core F
确定这些数字中哪一个最接近7的最佳方法是什么?Objective-C和Cocoa都不能为您提供任何解决方法。您可以将int存储在一个普通的
int
数组中,也可以将每个int封装在NSNumber
中,并将封装器存储在NSArray
中
如果要对数组进行多次探测,请提前对其进行一次排序,然后对每个探测使用二进制搜索(标准C函数bsearch
或Core Foundation的cfarraySearchValues
或Cocoa的-[NSArray indexOfObject:inSortedRange:options:usingComparator:
)来查找最近的两个元素。如果您只想探测数组一次或两次,只需使用for循环、减法、abs
和MIN
int closestDistance=INT32\u MAX;
int closestDistance = INT32_MAX;
int indexOfClosestDistance = -1;
int x = 7;
for (int i=0; i < [yourArray count]; i++)
{
int num = yourArray[i];
int diff = abs(num - x);
if (diff < closestDistance)
{
closestDistance = diff;
indexOfClosestDistance = i ;
}
}
int indexOfClosestDistance=-1;
int x=7;
对于(int i=0;i<[yourArray count];i++)
{
int num=数组[i];
int diff=abs(num-x);
if(差值<最近距离)
{
最近距离=差异;
indexOfClosestDistance=i;
}
}
祝你好运最简单的方法是从较大的数字中减去较小的数字。所以你要先比较这两个数字,然后做简单的减法。因此,您会看到10-7距离3英里,7-5距离2英里。到目前为止您尝试了什么?你怎么用手做这个?也就是说,你能把它翻译成objective-c代码吗?这是家庭作业吗?如果是这样,请让我们知道,以便我们能够适当地回答。