演算法習題 刪數問題

2021-10-12 21:34:30 字數 608 閱讀 4445

給定n位正整數a,去掉其中任意k<=n個數後,剩下的數按原次序重新排列成乙個新的正整數。對於給定的n位正整數a和正整數k,設計乙個演算法使這個新的正整數達到最小。

給定乙個正整數a為 785314,經過刪數後得到的最小的正整數應該是 14。

輸入

785314

4

輸出

14
#include

#include

intmain

(void

)else

}//找到位置後長度減一

len--

;//移動數的位置

for(

int i = flag; i < len; i++

)//n減一 進行下一輪刪數 直到n=0

n--;}

for(

int i =

0; i < len; i++

)printf

("\n");

return0;

}

演算法 (貪心演算法) 刪數問題

刪數問題 需知道的數學定理 給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。定理 ex 1 2 3 9 5 刪掉乙個數 從第乙個數開始遍歷,到尋找到單調遞減的第乙個數...

貪心演算法 刪數問題

刪數問題 給定乙個n位正整數a,刪掉其中任意k k n 個位,剩下的為按原順序形成乙個新的正整數。找出剩下的數字最小的刪樹方案。輸入 a 0,n位,0 輸出 最小的剩下的數。貪心策略 最近下降點優先。自左向右逐位掃瞄數字a,找到第i位,使得a i a i 1 那麼刪掉第i位後,剩下的是當前數字刪掉1...

貪心演算法初學 刪數問題

題目 鍵盤輸入乙個高精度的正整數 240 位 去 掉任意 個數字後剩下的數字按原左右次序將組成一 個新的正整數。程式設計對給定的 和 尋找一種方案 使得剩下的數最小。input 178543 4 output 13 首先 n超過200位,肯定要用字串陣列來進行儲存。我們知道字串陣列隱含的 0 作為結...