在一個排好序的升序數列中,查找與肆意幾個給心猿意馬的值最接近的元素。要求升序列的長度小于100000,各元素的值小于1000000000,需要查找的給心猿意馬值個數小于10000,給心猿意馬值的巨細在1000000000之內,若是知足前提的值有兩個,則輸出最小的一個。
若何用C++實現這一計較呢?小編與大師分享操作經驗。
輸入數據時,第1行輸入升序數列的長度,第2行輸入數列的各值,第3行輸入需要查找的給心猿意馬值個數,最后一行輸入各查找的給心猿意馬值。
起首,界說一個常量,節制升序數列的最年夜長度。
界說各變量和數組,類型都為整型數據,用來實現運算。
輸入數列的長度,保留在變量n中。
接著,輸入序列的各元素,用for輪回節制輸入。
輸入要查找的給心猿意馬值的個數,保留在變量m中。
用for輪回節制輸入各給心猿意馬值,并計較出與給心猿意馬值最接近的序列中的值。
給查找規模的最小值和最高值位置賦值,初始值為0和n-1。
用do-while輪回,實現給心猿意馬值在序列中最接近值的查找。
用if語句節制,若是序列中有要查找的值,則輸出該值。
若是最后找到值年夜于需查找的值,按照其與查找值的接近法式判定出序列中最接近的元素。
最后,若是查找到的值小于需查找的值,按照與查找值最接近的兩個值,找出知足前提的元素。
運行法式,輸入升序序列、需查找的值后,電腦就會運算出查找值在序列中最接近的元素。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!