貪婪演算法 去掉 n 位正整數中的 s 位

2021-07-06 03:26:11 字數 1021 閱讀 7277

鍵盤輸入乙個高精度的正整數 n,去掉其中任意 s 個數字後剩下的數字按原左右次序將組成乙個新的正整數。程式設計對給定的n 和 s,尋找一種方案使得剩下的數字組成的新數最小。

怎麼樣根據貪婪策略刪除數字呢?總目標是刪除高位較大的數字,具體的,相鄰兩位比較若高位比低位大,則刪除高位。

c **如下:

#include

#include

#include

void delete(char n, int b, int k)

int main( )

printf("j= %d  j1= %d  i= %d  len1= %d strlen(n)= %d\n",  j, j1, i, len1, strlen(n));

if( j>=len1-1)   //說明在給定的序列中,任意相鄰的兩個元素,總是後面的元素大於前面的元素,

break;            //即序列中的元素是按照從小到大排列的, 一旦是這種情況,就直接從後向前刪除 s 位數即可。

}printf("output ***  data:\n");

for (int i=0; i1)

delete(n,0,1);

//將字串首的若干個「0」去掉       print(n);

printf("output array data:\n");

for (i=0; i

方法二:

int main( )

printf("33333  j= %d  j1= %d  i= %d  strlen(n)= %d\n\n",  j, j1, i, strlen(n));          

}printf("output ***  data:\n");

for (int i=0; i1)

delete(n,0,1);

//將字串首的若干個「0」去掉       print(n);

printf("output array data:\n");

for (i=0; i



n位 正整數 比賽日程的安排

設有n個運動員要進行網球迴圈比賽。設計乙個滿足要求比賽的演算法 1 每個選手必須和其他n 1位選手進行比賽 2 每個選手一天只能參加一場比賽 也可以不參加 3 當n為偶數時要進行n 1天的比賽 當n為奇數時要進行n天的比賽 include using namespace std int b 100 ...

五位的正整數

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 給出乙個不多於五位的正整數,求 1 他是幾位數 2 分別輸出每位數字 3,按逆序輸出各位數字,如原數為12345,應輸出54321 你好!這...

演算法 生成和為S的N個正整數

白話經典演算法系列之十三 隨機生成和為s的n個正整數 投影法 隨機生成和為s的n個正整數有很多種解法。下面講解一種比較高效且比較有趣味性的解法 投影法。以生成和為20的4個數為例,可以先生成隨機生成0到20之間的三個數字再排序,假設得到了4,7,18。然後在x y數軸上畫出這三個數,如下圖 然後將這...