golang获取一串数字中与给定数最接近的数字

原创
2015/09/12 11:17
阅读数 892

今天需要写一个算法,获取一串数字中与给定数最接近的数字,代码如下

package main

import (
    
    "fmt"
)

func main(){
    arr:=[]int{12,16,29,34,39,43,55,64,71,89,90,9}
    zuijin:=get_zuijin(40,arr)
    fmt.Println(zuijin)
}

func get_zuijin(this int,arr []int) int{
    min:=0 
    if this==arr[0]{
        return arr[0]
    }else if this>arr[0]{
        min = this-arr[0]
    }else if this<arr[0]{
        min = arr[0]-this
    }
    
    for _,v:=range arr{
        if v==this{
            return v    
        }else if v>this{
            if min>v-this{
                min = v-this    
            }
        }else if v<this{
            if min>this-v{
                min = this-v    
            }
        }
    }
    
    for _,v:=range arr{
        if this+min == v{
            return v    
        }else if this-min == v{
            return v    
        }    
    }
    return min
}



展开阅读全文
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
2 评论
1 收藏
0
分享
返回顶部
顶部