第四章上機實踐報告

2022-08-17 17:33:18 字數 736 閱讀 1209

刪數問題 (110 分)

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

第 1 行是1 個正整數 a。第 2 行是正整數k。

輸出最小數。

在這裡給出一組輸入。例如:

178543 

4

在這裡給出相應的輸出。例如:

使用貪心演算法的思想每次選擇從頭開始遞增的數字中最大的數字  即一定範圍內最大的 但不一定是整個數中最大的最後全部刪除完之後處理一下字首零的問題就過了.
每次選擇從頭開始遞增的數字中最大的數字,刪除後將向前移一位;考慮第一位是0的情況進行判斷,若第一位是0則輸出0,若刪除後得到的整數第一位是0則刪除0向前移一位.

部分**如下:

int i ,len ,n;

char s[110];

while(scanf("%s %d",s,&n)!=eof)

{while(n)

{len = strlen(s);

i = 0;

while(i時間複雜度: =o(n)

空間複雜度:o(n)

和隊友一起做題,在第三題的時候犯了小錯誤,在迴圈條件內輸出導致部分錯誤,第一第二題在討論後很快就得出思路並且解決問題了。

第四章上機實踐報告

實踐題目 4 2 刪數問題 110 分 給定n位正整數a,去掉其中任意k n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。輸入格式 第 1 行是1 個正整數 a。第 2 行是正整數k。輸出格式 輸出最...

第四章上機實踐報告

一 實踐題目 二 題目描述 給定一串串行,每次取兩個數的值加起來,然後把兩個數取出來,將兩個數加起來的值放入序列 三 演算法描述 題目大意其實類似哈夫曼編碼,只是他還要再求乙個最大值的 因此進行兩次操作,一次每次都是取最大的兩個數,另一次每次都是取最小的兩個數 每次取到的兩個最大或者最小的數a b進...

第四章上機實踐報告

4 1 程式儲存問題 40 分 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。第一行是2 個正整數...