Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从目标c中的一组Int值中查找最接近的Int值_Objective C_Math_Int - Fatal编程技术网

Objective c 从目标c中的一组Int值中查找最接近的Int值

Objective 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

目标c数学函数题

我得到了一个x值,我想与集合中的其他值进行比较,然后确定我的x值最接近的集合中的哪个值

例如,假设我有整数5,10,15,20,25


确定这些数字中哪一个最接近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代码吗?这是家庭作业吗?如果是这样,请让我们知道,以便我们能够适当地回答。