實驗專案:acm程式設計基礎(5)
實驗目的:掌握c++程式設計基礎。
實驗要求:使用vc++6.0實現實驗要求。
實驗內容:
1.編寫乙個函式實現如下功能:
輸入:7
輸出:
1 8 14 19 23 26 28輸入:52 9 15 20 24 27
3 10 16 21 25
4 11 17 22
5 12 18
6 13
7
輸出:
1 6 10 13 152 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。輸入...