軟體基礎實踐 刪數問題(貪心法)

2021-09-29 05:26:42 字數 714 閱讀 4417

1.問題描述:

給定 n 位正整數 a,去掉其中任意 k≤n 個數字後,剩下的數字按原次序排列組成乙個 新的正整數。對於給定的 n 位正整數 a 和正整數 k,設計乙個演算法找出剩下數字組成的新數 最小的刪數方案。

2.演算法設計:

對於給定的正整數 a,計算刪去 k 個數字後得到的最小數。

資料輸入:第 1 行輸入正整數 a,第 2 行輸入正整數 k。

資料輸出:輸出計算出的最小數。

例:輸入:178543

4輸出:13

#include

;#include

;using namespace std;

intdeletenumber

(char

*a,int k)

//沒找到那個單調遞減的第乙個數,就刪掉非遞減序列的最後乙個數。

else

if(a[i]

> a[i +1]

) n--

;//長度減一

break;}

} k--;}

return n;

}int

main()

cout <<

"\n"

;system

("pause");

return0;

}

刪數問題(貪心)

time limit 1000ms memory limit 65536k 有疑問?點這裡 給定n 位 n 100 正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新的正整數。對於給定的n 位正整數a和正整數k,設計乙個演算法找出剩下數字組成的新數最小的刪數方案。對於給定的正整...

貪心 刪數問題

題目描述 鍵盤輸入乙個高精度的正整數n 240位 去掉其中任意s個數字後剩下的數字按原左右次序將組成乙個新的正整數。程式設計對給定的n和s,尋找一種方案,使得剩下的數字組成的新數最小。n s 最後剩下的最小數 樣例輸入 178543 4樣例輸出13 這題貪心是要找乙個單調增的數,即保證較小數總在高位...

貪心 刪數問題

problem description 鍵盤輸入乙個高精度的正整數n 100位 去掉其中任意s個數字後剩下的數字按照原來的左右次序組成乙個新的正整數。程式設計對給定的n與s,尋找一種方案,使得剩下的數字組成的新數最小。input 輸入有多組 每組包括原始數n,要去掉的數字數s output 輸出去掉...