1 //Problem: Input a number n1, then convert it to another number on a particular number system.
2 //Solved by Mon Feb 16, 11:58 PM
3 //Source Code
4 #include<iostream>
5 #include<vector>
6 using namespace std;
7
8 class iStack
9 {
10 public:
11 iStack(int capacity = 0):_stack(capacity), _top(0){}
12
13 bool pop( int &value );
14 bool push( int value );
15
16 bool full();
17 bool empty();
18 void display();
19
20 int size();
21
22 private:
23 int _top;
24 vector< int > _stack;
25 };
26
27 void conversion();
28
29 int main()
30 {
31 conversion();
32 }
33
34 void conversion()
35 {
36 int n1, base;
37 cout << "Please input the number to be conversion n1: " << endl;
38 cin >> n1;
39 cout << "Please input the base used to perform conversion: " << endl;
40 cin >> base;
41 iStack s(100);
42 int remainder;
43 while(n1 != 0)
44 {
45 remainder = n1 % base;
46 n1 /= base;
47 s.push(remainder);
48 }
49 cout << "the number after conversion is: " << endl;
50 int temp;
51 while(s.size())
52 {
53 s.pop(temp);
54 cout << temp;
55 }
56 cout << endl;
57 }
58
59 inline int iStack::size()
60 {
61 return _top;
62 }
63
64 inline bool iStack::empty()
65 {
66 return _top ? false : true;
67 }
68
69 inline bool iStack::full()
70 {
71 return _top < _stack.size() - 1 ? false : true;
72 }
73
74 bool iStack::pop( int &top_value )
75 {
76 if ( empty() )
77 return false;
78
79 top_value = _stack[ -- _top ];
80
81 return true;
82 }
83
84 bool iStack::push( int value )
85 {
86 if( full() )
87 return false;
88
89 _stack[ _top ++ ] = value;
90 return true;
91 }
先贴两张图片,以后再写配置:
2 //Solved by Mon Feb 16, 11:58 PM
3 //Source Code
4 #include<iostream>
5 #include<vector>
6 using namespace std;
7
8 class iStack
9 {
10 public:
11 iStack(int capacity = 0):_stack(capacity), _top(0){}
12
13 bool pop( int &value );
14 bool push( int value );
15
16 bool full();
17 bool empty();
18 void display();
19
20 int size();
21
22 private:
23 int _top;
24 vector< int > _stack;
25 };
26
27 void conversion();
28
29 int main()
30 {
31 conversion();
32 }
33
34 void conversion()
35 {
36 int n1, base;
37 cout << "Please input the number to be conversion n1: " << endl;
38 cin >> n1;
39 cout << "Please input the base used to perform conversion: " << endl;
40 cin >> base;
41 iStack s(100);
42 int remainder;
43 while(n1 != 0)
44 {
45 remainder = n1 % base;
46 n1 /= base;
47 s.push(remainder);
48 }
49 cout << "the number after conversion is: " << endl;
50 int temp;
51 while(s.size())
52 {
53 s.pop(temp);
54 cout << temp;
55 }
56 cout << endl;
57 }
58
59 inline int iStack::size()
60 {
61 return _top;
62 }
63
64 inline bool iStack::empty()
65 {
66 return _top ? false : true;
67 }
68
69 inline bool iStack::full()
70 {
71 return _top < _stack.size() - 1 ? false : true;
72 }
73
74 bool iStack::pop( int &top_value )
75 {
76 if ( empty() )
77 return false;
78
79 top_value = _stack[ -- _top ];
80
81 return true;
82 }
83
84 bool iStack::push( int value )
85 {
86 if( full() )
87 return false;
88
89 _stack[ _top ++ ] = value;
90 return true;
91 }
先贴两张图片,以后再写配置: