gpt4 book ai didi

c - 在 C 中将整数分类/映射到各种类别的优雅方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:08 25 4
gpt4 key购买 nike

假设我们有一个整数“x”和“n”个可能的值,“x”可以被映射/装箱到。在 C 中,有什么优雅的方法可以让函数返回最接近 x 的“第 n 个”值?

伪代码示例;

int x = 40;
int res;
int bins[] = { 0, 20, 80, 200 }; /* Sorting is guaranteed */

res = int_bin(x, bins);
assert(res == 20); /* 40 is closer to 20 than 80 */

x = 150;

res = int_bin(x, bins);
assert(res == 200); /* 150 is closer to 200 than 80 */

我所说的优雅不仅仅是一堆 if/else if/else 语句。

最佳答案

如果列表已排序,那么您可以简单地对值进行二分查找。

如果搜索没有在列表中找到该值,您将知道如果该值在列表中,它会位于哪个索引处。然后,您可以将该值与该索引处的元素和前一个索引处的元素进行比较(如果索引不为零,显然),看看哪个更接近。

关于c - 在 C 中将整数分类/映射到各种类别的优雅方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096168/

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