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;
- }
留言
張貼留言