1 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
使用遞歸。
基本上從檢查第一個分數(shù)的函數(shù)調(diào)用開始。如果它大于或等于最終分數(shù),則返回該值。如果它小于分數(shù),則再次調(diào)用該函數(shù),并將新分數(shù)作為參數(shù)傳遞。如果下一個分數(shù)加上前一個分數(shù)大于或等于該分數(shù),則返回該值。如果不是,則繼續(xù)進行,直到分數(shù)大于或等于該值。
現(xiàn)在,您還必須檢查哪個最終得分最接近,不一定哪個更大(例如,您可以得到 10 作為較大的值,而較小的值是 5,這更接近,所以在這種情況下,您需要選擇 5)。
所以要解決這個問題,你需要做同樣的事情,再次,相反。從對第一個分數(shù)值的函數(shù)調(diào)用(不同的函數(shù))開始。如果等于或小于最終分值,則返回。如果它大于最終分數(shù),則繼續(xù),并再次調(diào)用相同的函數(shù),將之前的分數(shù)作為參數(shù)。如果新分數(shù)加上剛剛檢查的上一個分數(shù)小于或等于最終值,則返回它。如果它更大,則繼續(xù)前進,直到到達終點。如果您已經(jīng)到達終點并且所有添加的值仍然更大,那么只需返回最后一個值。
現(xiàn)在您總共有 2 個返回值,來自這兩個不同的函數(shù)。現(xiàn)在您只需將每個值與最終得分(即絕對值)之間的距離進行比較。假設(shè)你的分數(shù)是6,一個結(jié)果是8,另一個是4。因此,取一個變量列表distHigher
并將其設(shè)置為8 - 6
,然后創(chuàng)建另一個變量 ,distLower
并將其設(shè)置為6 - 4
,然后確定哪個數(shù)字更小,這就是您的答案。
添加回答
舉報