ACM實驗七 ACM程式設計基礎(5)

2021-06-06 16:44:37 字數 1750 閱讀 9249

實驗專案:acm程式設計基礎(5)

實驗目的:掌握c++程式設計基礎。

實驗要求:使用vc++6.0實現實驗要求。

實驗內容:

1.編寫乙個函式實現如下功能:

輸入:7

輸出:

1   8  14  19  23  26  28

2 9 15 20 24 27

3 10 16 21 25

4 11 17 22

5 12 18

6 13

7

輸入:5

輸出:

1   6  10  13  15

2 7 11 14

3 8 12

4 9

5

int **a = new int*[n];	//n行

for(int i = 0; i < n; ++i)

a[i] = new int[m]; //m列

2.由1..9這九個數字組成九位數(無重複數字)能被11整除,求最大、最小者。

3.附加題:

給定n個矩陣a1a2…an, 其中ai與ai+1是可乘的。考察這n個矩陣的連乘積a1a2..an,如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。

例如a1=30×35、a2=35×15、a3=15×5、a4=5×10、a5=10×20、a6=20×25

最小乘數為15125。

1.輸出數字三角形。

這道題我沒有用到動態分配二維陣列,而是根據數字與前乙個數字的遞推關係直接輸出:

#include#includeusing namespace std;

int main()

for(j = 1; j <= t - i + 1; ++j)

cout << endl;

} }return 0;

}

2.由1..9這九個數字組成九位數(無重複數字)能被11整除,求最大、最小者。

直接最笨的方法遞迴全排列,求出最大最小值:

#includeusing namespace std;

int num_min = 987654321;

int num_max = 0;

int sum = 0;

void backtrack(int a, int n, int k)

if(num % 11 == 0)

return;

} ++sum;

for(i = k; i < n; ++i)

}int main();

backtrack(a, 9, 0);

cout << num_min << endl;

cout << num_max << endl;

//cout << sum << endl; //統計遞迴次數,因為是最笨的方法直接暴力所以次數特別大

system("pause");

return 0;

}

3.最優矩陣連乘積.

********************===籤 名 檔********************===

********************===籤 名 檔********************===

ACM實驗五 ACM程式設計基礎(3)

2.某售貨員要到若干城市去推銷商品,一直各城市之間的路程,他要選定一條從駐地出發,經過每個城市一遍,最後回到住地的路線,使總的路程最短。3.anagrams by stack問題,見anagrams by stack。1.為了對信件保密,需要對信件進行加密,加密方法是每個字母加5,如a寫成f,b寫成...

ACM實驗五 ACM程式設計基礎(3)

2.某售貨員要到若干城市去推銷商品,一直各城市之間的路程,他要選定一條從駐地出發,經過每個城市一遍,最後回到住地的路線,使總的路程最短。3.anagramsbystack問題,見anagramsbystack。1.為了對信件保密,需要對信件進行加密,加密方法是每個字母加5,如a寫成f,b寫成g。輸入...

ACM實驗五 ACM程式設計基礎(3)

2.某售貨員要到若干城市去推銷商品,一直各城市之間的路程,他要選定一條從駐地出發,經過每個城市一遍,最後回到住地的路線,使總的路程最短。3.anagramsbystack問題,見anagramsbystack。1.為了對信件保密,需要對信件進行加密,加密方法是每個字母加5,如a寫成f,b寫成g。輸入...