前言 :
多項式是數學中相當重要的表現方式, 通常如果使用電腦來處理多項式的各種相關運算, 可以將多項式以陣列或鏈結串列來儲存. 而一個多項式可以使用底下兩種陣列結構來儲存在電腦 :
範例代碼 :
* ch02.h 代碼 :
* ch02.cpp 代碼 :
* 呼叫演算碼範例代碼 :
執行結果 :
多項式是數學中相當重要的表現方式, 通常如果使用電腦來處理多項式的各種相關運算, 可以將多項式以陣列或鏈結串列來儲存. 而一個多項式可以使用底下兩種陣列結構來儲存在電腦 :
範例代碼 :
* ch02.h 代碼 :
- #include
- using namespace std
- /*
- * As ch02_07.cpp
- * 將多項式矩陣 polyA 與 polyB 進行相加並將結果回存 polyC. 其中參數 itimes 為多項式的最高次項.
- */
- void polySum(int* polyA, int* polyB, int* polyC, int itimes);
- void polySum(int* polyA, int* polyB, int* polyC, int itimes) {
- for(int i=1; i<=(itimes+1); i++) {
- polyC[i] = polyA[i] + polyB[i];
- }
- }
- #include "ch02.h"
- /*
- * 顯示傳入的多項式矩陣.
- */
- void _printPoly(char* message, int *poly) {
- printf("[ %s ]->", message);
- int maxItem = poly[0];
- for(int i=1; i<=(poly[0] + 1); i++) {
- if(poly[i]!=0) {
- if(maxItem>0) {
- printf("%dX^%d", poly[i], maxItem);
- } else {
- printf("%d", poly[i]);
- }
- for(int j=i+1; j<=(poly[0]+1); j++)
- if(poly[j]>0) {
- cout << " + ";
- break;
- }
- }
- maxItem--;
- }
- cout << endl;
- }
- void ch02_07(bool b) {
- if(b) {
- const int ITEMS = 4;
- int polyA[ITEMS + 2] = {4, 3, 7, 0, 6, 2};
- _printPoly("多項式A", polyA);
- int polyB[ITEMS + 2] = {4, 1, 5, 2, 0, 9};
- int polyC[ITEMS + 2] = {0};
- polyC[0] = polyA[0];
- _printPoly("多項式B", polyB);
- printf("[ 多項式相加結果(polyA+polyB=polyC) ]\n");
- polySum(polyA, polyB, polyC, polyA[0]);
- _printPoly("多項式C", polyC);
- }
- }
執行結果 :
This message was edited 1 time. Last update was at 21/03/2010 01:10:42
沒有留言:
張貼留言