C++ HW12-2(堆疊) for WallPower
請利用堆疊儲存多項式係數,並在輸入變數值後,求出多項式之值。
參考結果如下。
參考結果如下。
#include <iostream> #include <stdlib.h> #include <string> using namespace std; #define NUM 100 int x; class stack { public: stack(); void push(int); int pop(); void printStack(); private: int array[NUM]; int top; }; stack::stack() { top = -1; } void stack::push(int n) { if (top == NUM - 1) { cout << "stack is full!"; exit(1); } array[++top] = n; } int stack::pop() { if (top == -1) { cout << "stack is empty!!"; exit(1); } return array[top--]; } void stack::printStack() { int i; if (top == -1) { cout << "stack is empty!!\n"; } else { int sum = 0; for (i = top; i >= 1; i--) sum += pow(x, i) * pop(); sum += pop(); cout << sum << endl; } } int main(void) { int choice = 0, input; stack S1; cout << "請輸入多項式之常數項係數:"; cin >> input; S1.push(input); while (true) { cout << "請輸入多項式之高一項係數(結束時請輸入-999):"; cin >> input; if (input == -999) break; S1.push(input); } cout << "請輸入變數之值:"; cin >> x; cout << "f(" << x << ") = "; S1.printStack(); system("pause"); return 0; }
留言
張貼留言