演算法與實驗二

2021-09-18 04:28:53 字數 2774 閱讀 6329

7-1 一元多項式求導 (20 分)

設計函式求一元多項式的導數。

輸入格式:

以指數遞降方式輸入多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。

輸出格式:

以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。

輸入樣例:

3 4 -5 2 6 1 -2 0

輸出樣例:

12 3 -10 1 6 0

#include

#include

using namespace std;

const

int maxn =

1000+10

;struct nodes[maxn]

;s2i

(string &s,

int&value)

//string轉化為整型

void

derivative

(int

&length)

else

length--;}

}int

main()

derivative

(i);

for(

int j =

0; j ++j)

}

算術表示式有字首表示法、中綴表示法和字尾表示法等形式。字首表示式指二元運算子位於兩個運算數之前,例如2+3*(7-4)+8/4的字首表示式是:+ + 2 * 3 - 7 4 / 8 4。請設計程式計算字首表示式的結果值。

輸入格式:

輸入在一行內給出不超過30個字元的字首表示式,只包含+、-、*、/以及運算數,不同物件(運算數、運算符號)之間以空格分隔。

輸出格式:

輸出字首表示式的運算結果,保留小數點後1位,或錯誤資訊error。

輸入樣例:

不會

7-3 兩個有序鍊錶序列的合法性

同上。7-4 符號配對 (20 分)

請編寫程式檢查c語言源程式中下列符號是否配對:/與/、(與)、[與]、。

輸入格式:

輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。

輸出格式:

首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對的符號:如果缺少左符號,則輸出?-右符號;如果缺少右符號,則輸出左符號-?。

輸入樣例1:

void test()

.輸出樣例1:

no/*-?

輸入樣例2:

void test()].

輸出樣例2:

no?-]

輸入樣例3:

void test()

.輸出樣例3:

yes

#include

using namespace std;

const

int maxn=

100;

struct stacks[4]

;int t[4]

;int flag[4]

;void

push

(int i,

char c)

void

pop(

int i)

intmain()

push(0

,str[j]);

//入棧

}else

if(str[j]

==''

)push(1

,str[j]);

}else

if(str[j]

=='['

||str[j]

==']'

)push(2

,str[j]);

}elseif(

(str[j]

=='/'

&&str[j]

=='*')||

(str[j]

=='*'

&&str[j]

=='/'))

push(3

,str[j]);

push(3

,str[j]);

}}//重新排序

for(

int k =

0; k <4;

++k)

for(

int k =

1; k <=4;

++k)

else}}

}//尚未完成

7-5 出棧序列的合法性 (25 分)

給定乙個最大容量為 m 的堆疊,將 n 個數字按 1, 2, 3, …, n 的順序入棧,允許按任何順序出棧,則哪些數字序列是不可能得到的?例如給定 m=5、n=7,則我們有可能得到,但不可能得到。

輸入格式:

輸入第一行給出 3 個不超過 1000 的正整數:m(堆疊最大容量)、n(入棧元素個數)、k(待檢查的出棧序列個數)。最後 k 行,每行給出 n 個數字的出棧序列。所有同行數字以空格間隔。

輸出格式:

對每一行出棧序列,如果其的確是有可能得到的合法序列,就在一行中輸出yes,否則輸出no。

輸入樣例:

5 7 5

1 2 3 4 5 6 7

3 2 1 7 5 6 4

7 6 5 4 3 2 1

5 6 4 3 7 2 1

1 7 6 5 4 3 2

輸出樣例:

yesno

noyes

no

(演算法設計與分析)實驗二 熟悉遞迴演算法

利用遞迴知識和c c 語言,提公升自己的程式設計能力,實現遞迴 實現若干個遞迴描述的演算法。1 漢諾塔問題的遞迴演算法 2 棋盤覆蓋問題的遞迴演算法 3 其它 任意設計乙個遞迴問題,寫出遞推關係並實現它。1 漢諾塔遞迴演算法 include using namespace std int i 1 v...

演算法分析與設計實驗 二 之動態規劃

1 能用程式語言實現求解相關問題的演算法 2 深刻掌握動態規劃法的設計思想並能熟練運用 3 理解這樣乙個觀點 同樣的問題可以用不同的方法解決,乙個好的演算法是反覆努力和重新修正的結果。1 用動態規劃法求解問題 2 分析演算法的時間效能,設計實驗程式驗證分析結論。1 理解最優子結構的問題。有一類問題的...

演算法與設計實驗一

include include int isood int n int compare int a,int b using namespace std int main 檔案所有數字輸入的陣列 int b 200 第乙個陣列,從a陣列的第二個數開始分配,分配num個 int c 200 第二個陣列,...