设为首页收藏本站官方微博

外国人的数学素质是差啊

[复制链接]
查看: 1388|回复: 8
打印 上一主题 下一主题

外国人的数学素质是差啊

跳转到指定楼层
楼主
发表于 2016-3-31 09:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

外国人的数学素质是差啊

游戏里有这样的谜题:要求4 Q7 Z3 f* _0 K5 M6 i
(A+B-C)*D+E-F=7
, B6 x( |& H# T8 N! }! HA、B、C、D、E、F为11、9、1、6、4、2的其中一个数值。3 L- n0 n7 {7 s5 b+ v0 i6 i. z
好吧!!. Y; @+ v, G. r- \2 M  u
第一解:
  F! v) Q9 Q6 C: `, J% v2 a  Z0 R3 ^" s$ l% K
(9-6+1)*4+2-11=7. Z) ?) G& P4 G2 T

- T$ V8 r: l0 [居然没通过 8 b1 _$ ~3 M# m9 h! h

0 f6 R8 K* x5 A好吧!继续,第二解:
' c# j) M" D  K0 V9 a9 `
5 E% P/ x* R& {7 q0 W(9-4+1)*2+6-11=7( w. s' O; h% [* f) z, b
; E/ g+ M* S/ E5 H# M4 q
又说我是错的, 7 H* M1 ]& m0 C/ T' }& C- l
; @7 H! z# F! L6 i, i* m
没关系,我还有第三解:
) g+ ^$ B7 c8 `: z
/ h8 h& W8 V: l. ]: x6 u4 j(11-6+1)*2+4-9=7
  h7 p7 A( Q* u" G
; F+ M* C( ]/ p  B我靠,又说我错的,我CAO,老外的数学全都是体育老师教的吗?我崩溃了
' d& l# r- W% u! B
/ P: U7 b8 ^. n+ l还有没有第4解啊?第5解啊??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

9#
发表于 2016-6-23 11:24 | 只看该作者
caimicn 发表于 2016-3-31 10:14
) g% H+ s* R6 P6 M7 M" [3 l好了,找到第四种方法了

9 ?" Y6 u! }  G/ t& r7 k代入以下代码,得:11,9,4,2,1,6 滑稽~. I8 `9 j' Y1 }* ~- ?7 C6 s3 |6 w8 T8 Q

; g, a- i; r5 I6 e/ w" f* ]3 C#include <iostream>
6 o* ~$ X& a' R% w+ \- p! ~#include <string.h>
- _, R- D4 d: Z6 ]9 Busing namespace std;! G/ F7 E/ I& a. n8 a
template <class T>
2 R9 c. F0 x* P- N% Cclass Node% ^/ Y  B" }' q) S+ x  ?
{" ~# g" w/ `, [- H/ r
public:. C7 J2 t5 D0 A! [7 q  T: `
        T data;
& T* W* E2 Z: _( G& s: _        Node<T> *next;
. [: `4 P0 p, d+ T1 l: W! |. W        Node()3 |: J: h- K% }5 r+ X) [
        {$ M2 E3 E2 T4 U$ J- |4 `7 j# W
                this->next = NULL;% W. k1 S* ]7 e; ~  \7 c6 e9 |
        }
0 |# Y% r( U9 U, h4 ^        Node(T data,Node<T> *next=NULL)) l" L- V; t+ z2 Z; y6 W" w+ n$ _
        {
' G+ D9 m+ M) A# K+ }: n                this->data = data;' B6 K6 v) G- p' Y
                this->next = next;
1 ~' E! i) a: R( |) S4 d7 ?        }
, v  J, Y9 c! e) J4 T( z};
! b! ], `# ?1 j& p# J/ [
  s' r) l& j6 y) a& stemplate <class T>. V, O2 s! ?  p+ |) {
class LinkedStack& p8 k5 Y& U0 S! P" t
{" h0 m. o1 w5 s; I
private:' h7 Z* U9 a4 ?" v0 U- v
        Node<T> *top;
7 j$ U9 ^$ K: U+ h+ E: l6 P, gpublic:& N! ?* v. h5 o; t! {+ l7 _
        LinkedStack();1 q3 l4 q) y% r; S; W
        ~LinkedStack();2 Q4 l2 r( O5 C& D8 Z4 z
        bool isEmpty();
5 p+ n: ?7 X3 e4 u4 R2 X* t: E( S" V        void push(T x);) L5 \( M" m- L$ M  Q- X
        T pop();
+ f9 J$ w' ~, j: ^/ D        T get();
; {' R: S, ], @; i' l$ E};6 \6 c9 ~; M. q% Y" H( r

" v5 o! \6 E8 P$ ]$ \" k0 K/ Ztemplate <class T>+ P* {( I1 U+ l4 \% @
LinkedStack<T>::LinkedStack()0 d0 f; _- G! t) W7 O3 e
{
3 ?% u% W" Y/ J. \5 ]# E0 k7 n        top = NULL;. {5 G; H3 z: V% W( S5 w! a$ P
}
0 {5 I1 g3 I6 z8 K! i2 E5 f4 K2 A. G
template <class T>7 r) Z# c& p! a+ O7 A
LinkedStack<T>::~LinkedStack()  M, [/ F' U# O5 j$ J. K0 K
{
$ A9 x5 n# v) ], u        Node<T> *p = top;
' K: A4 }2 L9 z: `) d0 ^& q        Node<T> *q;
4 R" r9 O7 P& {! c4 t& u) D0 p! W        while(p!=top)
! i& n) ]* B" K  h/ I) p7 M  x  o        {7 r+ n8 V6 g5 w, G; g/ _1 {5 G, L
                q = p;
5 w9 \8 n$ ?4 q$ @                p = p->next;1 U1 E) e& A- i2 g
                delete p;' W% Y; a. v1 @4 f; _3 O
        }
  v9 k- P6 @- b+ V" w        top = NULL;
" ]% f$ y! \  ?7 a9 d" L}1 W/ |! j" v  r4 J5 f! |) U& x/ ]

. W( n) P, e; X& t3 a: T; ~* d, ztemplate <class T>+ s& E8 O0 m, f: w- o
bool LinkedStack<T>::isEmpty()* H- w! X- ]& [' h) z, f6 p: }
{( q4 l1 T# @# A; G
        return top == NULL;
3 B, w, f2 i. o. o}7 R- h1 P3 f" [! a. `/ W% E

6 P- y& M" U+ U+ `template <class T>( r( O% ^0 r+ @! \; ?. N
void LinkedStack<T>::push(T x)
1 p. @1 L7 u/ |! ~" D8 |  W! g# D{
( O& \# t8 W) q; o$ Z: C        top = new Node<T>(x,top);
  U3 o0 e; l8 R' V5 a% U}& Y0 ~1 e9 D: w% Z3 z0 R$ v% C
$ n+ P4 Q: C% x! h9 s6 r4 L6 n
template <class T>
9 y. C0 g9 a, N0 {T LinkedStack<T>::pop()0 ~% r' z2 R, S" l3 ~
{, a7 H2 h0 V+ T/ l' k, p2 S$ b
        if(!isEmpty())
' W: V/ K% [  G. I$ S* o        {; F' [9 w  l# X9 {
                T x = top->data;1 s1 X& D# v  [
                Node<T> *p = top;
4 Z# t/ I8 C0 B( e: O                top = top->next;
0 ]$ @  s6 ]% O& |                delete p;+ T3 s, r7 s6 Z" D; ?
                return x;
' R6 a' z5 Z2 l, y/ w        }
0 P3 U: K% J7 q4 c* |0 C        throw "空栈,不能执行出栈操作";4 T, d7 v$ _, j& U' k
}
5 B" e2 y2 b6 R0 X/ ?$ l5 |
) V0 c; c4 X, O! D4 F3 @. {template <class T>. p- B" j9 ^0 _" u% y
T LinkedStack<T>::get()
6 T8 F) q" v  ], X/ O9 K{
: {1 X, X* ?) C" e) \9 _8 D        if(!isEmpty())
, u4 p7 t6 s" r' a9 s& v7 Y        {
' M% ]/ H$ I1 E                return top->data;
4 _9 l% {  k$ A* h$ j+ Q) ?        }% `0 O" [: b1 |" V
        throw "空栈,不能获得栈顶元素";
& C# {7 |6 o* J+ Y& S}" o0 r1 q0 o6 D0 U0 R% D
* _  I9 t* K4 F2 c
char * toPostfix(char *expstr)9 A, w) M- |6 D
{
4 h) B  l. Y! `" O& `4 [& R- g        LinkedStack<char> stack;
! i; B# q" T9 f% S6 P        char *postfix = new char[strlen(expstr)*2];6 \4 ]( c3 H# h
        int i=0;: Y! d! W  n+ d! T% {) l
        int j=0;) d1 d$ n5 y  N9 Y6 `
        char out ;
, ?+ [* [. W* {/ V* n: \        while(expstr!='\0')
/ V# F( n, y9 w+ i8 z% d: ~        {
# i5 H7 Y7 i4 m- r: ~! c2 U- q4 k                switch(expstr)' q3 E  ?) e0 Z9 K( t2 y
                {# }, a- _; G4 f; x- P) @4 I
                        case'+':( y- c5 T- U9 C9 O4 {  N1 e0 N
                        case'-':
* n0 \. h  g. l! A5 B) R                                while(!stack.isEmpty()&&stack.get()!='(')
2 W9 N0 e" ]5 y- d* U* [7 _                                {. ?7 C0 f" p1 D- ^* n* t5 _
                                        postfix[j++] = stack.pop();
& M' {" I# L( r  b                                }
: h% p# Z! B& v2 p' M7 N7 f$ U                                stack.push(expstr[i++]);
3 g; Y% P4 ^' N4 j                                break;5 N/ c/ i* X$ r8 r9 x. n
                        case'*':
$ @9 p, J8 g' O                        case'/':* d0 V# D+ g0 o
                                while(!stack.isEmpty()&&(stack.get()=='*'||stack.get()=='/'))9 d8 H4 C6 m! e0 v4 R) J5 u5 [" J
                                {
7 B+ |, \3 ^5 M3 ?                                        postfix[j++] = stack.pop();" w, s8 T, v* d9 v' H9 j; P
                                }
- Q" B6 U& `5 e' @* A# W* ]) M                                stack.push(expstr[i++]);) I& Z. t  @( V1 Y) L2 r
                                break;7 y$ s% J8 c, H2 l/ |( P: Y* q2 B
                        case'(':stack.push(expstr[i++]);
) R! s1 t+ K6 ]6 I: h                                break;
/ J) q* U0 a2 a- t* y, N( J                        case')':out = stack.pop();
7 b( r4 [2 \7 t+ b+ Y" Q2 k( B: J                                while(!stack.isEmpty()&&out!='(')1 A. W6 b6 w) C1 Y  M$ Z
                                {9 r, W+ I# k4 t
                                        postfix[j++] = out;
2 e+ e1 ]/ y2 h' Q+ |0 l/ w                                        out = stack.pop();. r4 D4 z. I( z4 ~5 W
                                }9 e( z! ~7 Z. R3 l
                                i++;
0 s1 L# ~; V5 K5 [! ^                                break;
6 q1 ]$ I3 V  [- S                        default:
  K3 B# ^$ y' @) b+ X# f                                while(expstr>='0'&&expstr<='9'&&expstr!='\0')" J( ]- y1 p0 X
                                {* H! [5 A7 h4 ?- j- T" A) m9 s
                                        postfix[j++] = expstr[i++];$ n! D* _0 B" F' F8 q1 E4 ]
                                }- C3 I3 n' ~7 w+ A3 V. b
                                postfix[j++]=' ';
& k, V# e' m$ n* r4 [% b                                break;
4 A- S5 q% p8 B% Z1 S' l& y9 L                }" u) q8 Z! t$ ^0 t& o
        }& L: h8 Y: T4 ]& W$ r5 y1 q
        while(!stack.isEmpty())6 _3 m" W7 P) |' i& y3 }0 G
        {
" R6 G: B) ^$ Q6 l+ S+ ^1 ~2 a* n1 g$ \                postfix[j++]=stack.pop();2 D6 i1 w  p; I2 `
        }
- b. x% Z8 B# ?        postfix[j]='\0';3 m* ~0 p! B* u* r: ]8 C
        return postfix;
% z3 \6 n7 ]2 k6 s}2 i/ X3 y% B8 w8 u8 N

' \% S6 y* M  m1 O2 w/ L# Wint value(char *postfix)4 ]# {7 V/ M+ n
{8 `$ D% Y; h$ F+ U
        LinkedStack<int> stack;* e7 T6 ]9 O; \( Y0 u
        int i=0;
1 o4 v4 y+ E% n8 j: h1 L        int result = 0;
& k0 A  S2 k/ A        while(postfix!='\0')
; e- R2 r: n  M9 j- M- b& j+ k        {8 r3 {1 v3 j) e( r5 A) L* [( n
                if(postfix>='0'&&postfix<='9')* ?& Q( D: ?- B- _/ H
                {
2 r" L  G# f7 d. s) x                        result = 0;
$ B2 b; D# w7 x+ r- s! p                        while(postfix!=' ')
8 P: C2 U0 Z/ t. l# W/ }( @                        {
7 U9 O$ ~3 x- @) G$ ~                                result = result*10+postfix[i++]-'0';
+ x- J9 v! u+ _0 \3 m. P                        }
, w& g0 ^9 g# I6 T. A                        i++;
% H' ]9 |7 A* P( m& u, D1 H                        stack.push(result);
$ S3 [0 h. y$ n                }$ v% L9 [9 c, [! N9 w
                else
! Q6 {& v( n& B/ m( I4 F                {
( U# h3 c& ^  B# e& d7 g5 \                        if(postfix!=' ')# P$ `  L1 o7 T* y) ]& E0 C1 d
                        {- M- ?; ^% ^) P
                                int y = stack.pop();$ K5 z9 n5 N5 D7 \
                                int x = stack.pop();
; A' }( v9 H  H. I: K: S                                switch(postfix)
* B' ]5 E% [( x+ ?; Y, j                                {
( x2 k8 |# Q: K2 F                                        case'+':result = x + y;- |4 w. Y8 y1 X' ^6 y
                                                break;
0 A" k3 r9 ^1 T  k                                        case'-':result = x - y;
; W0 P2 p6 v! K. o0 v+ j4 J                                                break;
7 n  J  M, g& m5 u                                        case'*':result = x *y;
. b4 B2 w3 T, x7 c                                                break;
( T4 j3 m% `; W3 X* h7 _                                        case'/':result = x / y;& L3 C' p/ Y2 a0 W/ g/ ^
                                                break;
2 H; e9 I2 ~' d! {3 t                                }0 n0 g/ K& h5 a2 W2 K% {
                        stack.push(result);
6 U& O+ r5 G& y5 q- r) p                        }% }$ k$ l7 W2 A& N7 S
                i++;
. U! \$ O2 r1 Y. M6 T8 q. p$ v% M                }& S6 Z: R, e) E" l4 e& @+ [+ M
        }
4 x' `# K4 x/ _* y( S8 G        return stack.pop();
' G; w) r5 S( s}
* _2 r8 D4 u7 a9 @
: T' u9 }) j# g7 iint main()
) T, \+ b& T$ {. P$ G2 i{
) t7 o" e: T; ? //char *expstr = "121+10*(52-49+20)/((35-25)*2+10)";) ?8 O$ }9 e3 c; ~
cout << "请输入表达式:";. r' }/ K" T" S) ^* V, x# v
//char *a ;% [- k# Y6 n+ a5 L  y0 o1 K
//cin >> *a;
' x9 i% r( f# E, Q- m0 |! A5 g  F+ b char expstr[20]={0};
# {* ^: x% P7 F while(1)
; S- [1 K* o9 {9 M: \ {
7 U7 C9 C- p, V1 y+ ^3 ? cin>>expstr;+ D1 Q9 f9 z6 q% i
char *postfix = toPostfix(expstr);. j: o( @1 q, B5 w
         cout << "expstr= "<<expstr << endl;9 ~  v& r' d/ E$ E* ]' f
cout << "postfix= "<<postfix<<endl;
) M  [5 B  n% T6 m cout << "value= "<<value(postfix) << endl;
, Y% R1 u9 G: P4 b1 q }" @  ]5 Z" L  |+ m. c
return 0;. F5 t4 k3 H( D7 \
}
回复 支持 反对

使用道具 举报

8#
发表于 2016-6-23 11:23 | 只看该作者
代入以下代码,得:11,9,4,2,1,6 滑稽~" }) a* a( h* f/ X5 F

. ^+ n& g- |0 T0 N( m#include <iostream>6 w( X8 N6 u" f% h/ I3 O* A
#include <string.h>9 E& j6 p3 u& O3 O" d- |
using namespace std;
* y/ U! B8 K' X4 w. l2 z- Ytemplate <class T>
, T0 n) {8 y! Q: tclass Node" V& R; o  h7 Z- }" r$ X) y
{: }4 L4 x' z6 u$ x# X3 ^
public:
/ W4 S. S* g8 m' o% c# l) U        T data;) ]- y; N3 v. P3 H% l
        Node<T> *next;
1 E. u" U6 [. N& a5 f# r. K5 _* S3 E        Node()( T" }/ p, l. u! {( ~; o* D
        {0 n, s* \/ P$ F
                this->next = NULL;
$ ?4 P, i# S$ ?) e        }
$ c, I/ h# E, F9 k6 f6 ^$ e6 Y        Node(T data,Node<T> *next=NULL)
) {; B) @; x; e) x2 }! P# o        {
. @6 H! J9 R+ j9 l& F                this->data = data;
+ R* L" S& l; r4 T$ g  D                this->next = next;
8 y7 e' D% {: ~- ^: ?5 _8 P% r        }8 J  W3 K2 [+ V' x
};& i% f" E& X" {; \; |

. n) T, E4 h2 L8 H& o0 H6 K$ Ftemplate <class T>$ N) E- l8 s# [* ~" K3 T; h
class LinkedStack6 Q, ]" P2 G7 B. M8 v
{
5 z$ v+ Q6 R) H, Z; I% kprivate:& j* H+ [+ i) v9 {% `* v2 R
        Node<T> *top;
# |& t( H* }: e4 ?) P7 vpublic:3 y# Q( U3 t7 V9 p' f
        LinkedStack();- \0 U# K3 D6 T% g
        ~LinkedStack();
" t# T3 G% y& i2 [- s* D/ ?. r: i        bool isEmpty();( k/ M+ ~+ l" j
        void push(T x);
* ~. z0 q3 s3 }! |7 ?  l        T pop();
9 o' s) I! s0 m! V( {        T get();
- m3 b$ z# o4 ~( y5 C};2 U" s# k4 `- B- I; ^) b7 p

4 |$ c7 T2 q4 ^0 ztemplate <class T>$ I3 P( `% Y% V9 ~
LinkedStack<T>::LinkedStack()7 |" E) Y. T# j2 n
{) J( y( |6 z2 s/ T; ~
        top = NULL;
3 V1 D+ d" _2 g2 L, Q  l}
$ _7 _. Q" L$ S; S6 w+ u
$ S3 J, V4 X% u: N1 N* mtemplate <class T>
( \, f/ q, [5 b0 c: J+ SLinkedStack<T>::~LinkedStack()
" v$ l$ g3 k- V6 n5 D( J) P9 ?/ n{9 ^$ p4 Q5 M4 ^8 ]
        Node<T> *p = top;' ~9 q( J( A. u4 ^6 b
        Node<T> *q;9 G' o2 f3 |9 S/ p- T
        while(p!=top)# r( O0 [) G* i- @9 I
        {
) u+ G1 }% E0 \& e1 S5 D                q = p;
- w6 p8 Y9 U- {$ k( D8 C                p = p->next;
8 h3 D  s" w% {$ }2 d  x                delete p;# i  s" J' \$ U4 G7 e: A8 a2 o% v
        }
/ f8 i) K) ?6 I- J2 S2 t        top = NULL;
' ^9 n# R) |+ ?  V}
8 ]% m( A1 ]5 m& h  c/ I: k# [3 o, y5 j) q# V
template <class T>' q4 n% S6 }' d" m) T$ ]! G
bool LinkedStack<T>::isEmpty(). x/ D- i, s3 [5 }' S1 ?+ _
{
) |  g" b) X6 y        return top == NULL;
4 v( H: G) @3 q: I2 u}' m0 N+ L5 R: ?
6 t" i1 j3 r. |  T
template <class T>
" {7 t- L4 o' J3 j/ P5 l& Evoid LinkedStack<T>::push(T x)
( s7 G  q" K* l0 ]" ?% \{/ q9 G. o( k6 K% |$ |) T' k
        top = new Node<T>(x,top);- _& s+ X+ _. M& E# Y: ]7 u
}" i+ }1 X( M4 y, `3 k' u; z

- I0 A9 G1 }: T1 ftemplate <class T>
4 V$ J5 Y5 t, ~; }9 r2 N5 {2 |T LinkedStack<T>::pop()
! h8 O  V. R* H3 a* T' w8 w( k. e{' a* }$ ^5 Y# |$ q
        if(!isEmpty())
4 i* [' e% Y0 P$ U' p- M& y0 u" A        {$ c% X3 f- Q- u: @, n$ V$ _
                T x = top->data;0 G# q+ Y2 x/ J6 j
                Node<T> *p = top;+ c2 o. F4 _' ^
                top = top->next;
. T) q( \8 R: w  ?+ l* f7 K6 C                delete p;/ Y* }0 w7 L( K  h1 t( r
                return x;1 B" z( ?3 G! h' V
        }
# H. C; A( o1 ?- h! P        throw "空栈,不能执行出栈操作";
2 g" `2 R: [* b: j. N2 }3 \}
/ |- t' S8 r; U. O0 y2 L5 `5 J/ n- k, t5 z
template <class T>- i& H+ z( X5 n: {3 i" Q
T LinkedStack<T>::get()
5 L5 L8 l5 ~; i) h{
4 z, o0 m6 Y! g+ v0 ^        if(!isEmpty())6 |4 ]! x% @" x+ H7 e5 |5 Z6 _; X
        {
/ n8 r1 R- d  i) g6 u7 K                return top->data;
7 _; P* `; O* L( z$ Z) E9 v        }  j/ h- ~; F' c" `) Z3 N; `& E
        throw "空栈,不能获得栈顶元素";
3 k, P3 D7 K  e}5 |: W6 l4 L3 s: o/ l. f) @

1 I% |* ]5 V# E! b& P4 H5 Schar * toPostfix(char *expstr)
( s$ _2 N3 Q6 D5 `; Z3 M8 B{7 P* T, ~, o$ b5 H: E
        LinkedStack<char> stack;
2 R, _; C0 o6 C" s        char *postfix = new char[strlen(expstr)*2];
( O4 o( l" p9 W. s- z' d        int i=0;
5 A$ R  @( w$ R/ D        int j=0;
# B8 l( K8 C& b1 H' C        char out ;
3 x) s! A+ G* x! c2 r) j        while(expstr[i]!='\0')* E$ h- t% A, l7 b
        {. M# p" I7 @& ~
                switch(expstr[i])
1 e% r( S' N9 F, q' E8 u+ p                {2 x; N9 ]4 b7 Y9 m+ ~; I- e
                        case'+':9 N( K+ G$ ]; h4 j9 w) w9 U$ y
                        case'-':+ ]: C4 N+ e$ l3 O. p
                                while(!stack.isEmpty()&&stack.get()!='(')5 `' @9 H5 P' s) m
                                {
2 t8 Z/ l( E% P1 l; A9 h2 n2 ]                                        postfix[j++] = stack.pop();. O" t, }( I6 {9 R$ ^# ~
                                }
* @1 {, L  w! B( g                                stack.push(expstr[i++]);
$ t0 H* @% O( I0 R                                break;
0 W& ]8 G+ v! r$ ~! j7 i# C                        case'*':6 F2 \. X1 b1 o4 ]: N) c' U
                        case'/':- }0 I) ^* ~( i* X9 g5 v
                                while(!stack.isEmpty()&&(stack.get()=='*'||stack.get()=='/'))+ V! ?2 K/ A! t! o) u
                                {
7 z- X) K2 s) ^7 u0 `' c! l                                        postfix[j++] = stack.pop();
  H$ M2 B+ S* w; g' T  x: `                                }! V- p4 i# C- `* U1 j8 Z
                                stack.push(expstr[i++]);5 ?5 u* Z9 F/ @( F8 T# f; H
                                break;5 h* B5 y" Y2 V: q+ Q& }
                        case'(':stack.push(expstr[i++]);+ @2 p% P, a/ G- I- z5 S# r9 i0 d
                                break;
% ]3 H4 S$ R% A2 I3 n* [8 D( m                        case')':out = stack.pop();
( w2 Y' v' ]8 l2 W: n( U4 z                                while(!stack.isEmpty()&&out!='(')
! @' N" v* m! e: G4 |+ i$ Q                                {
% b5 }+ P# j* u                                        postfix[j++] = out;* v0 _+ [' g3 y5 a
                                        out = stack.pop();
, i! _" @8 y4 T* T: j                                }
( l2 g5 X; A1 h8 P7 A' Q                                i++;
5 u* W& ?7 V+ }2 u3 [7 C: n/ `                                break;
) b4 h/ U- \; I                        default:
1 D' B6 J' e3 V/ B. S                                while(expstr[i]>='0'&&expstr[i]<='9'&&expstr[i]!='\0')
1 u; w3 h* A5 e4 j9 |3 j; S                                {
7 {( R7 d' h. }) I3 k3 i) h                                        postfix[j++] = expstr[i++];6 c  a8 h9 W# A& O0 y" _& C! |* W( [
                                }
7 y  _. @% ^. v2 @+ w                                postfix[j++]=' ';
, k. C# @! Q/ N9 z                                break;
: {) f0 j5 l0 i" m- y# S                }8 c( m4 E9 d- F- J7 u
        }
9 s( ^, T2 p, c8 y. v        while(!stack.isEmpty())9 J  o# z- `& p
        {! k9 ?& N: \! q9 \; ^
                postfix[j++]=stack.pop();4 s$ P) \, I2 z7 ~6 u( M
        }  G% S: a  L- |7 s+ j% j1 S
        postfix[j]='\0';
  J: T5 r5 o9 b  s, _6 Q2 P        return postfix;/ h$ B, v% d7 q0 w# @9 Z
}
' s0 R  R. v4 P  L9 t: B+ `+ _* h! D. s, n8 e
int value(char *postfix)
- W$ {% D9 W) p/ K{
5 b; v9 B+ S; n( F) o/ z: s        LinkedStack<int> stack;
2 d2 _, a0 z% L# X8 d: p        int i=0;
. X3 c0 j& g+ X2 o        int result = 0;. b* W$ L9 E8 {. R
        while(postfix[i]!='\0')
" G8 x' j7 a% ?; K        {1 l/ I  e2 A  z
                if(postfix[i]>='0'&&postfix[i]<='9')7 f- x9 Y" C) V
                {, J+ a7 H' U0 D" t2 h
                        result = 0;
1 K: [6 b4 e7 }$ U) \* l. J6 b                        while(postfix[i]!=' ')4 e+ f4 M/ L: M5 Z9 q; s" P
                        {
' K0 |3 {# ~3 {1 f6 _, j" d' M                                result = result*10+postfix[i++]-'0';: u1 r/ B! T/ \9 |1 H
                        }% a; A+ M& {. F% g  I1 d* R
                        i++;6 F9 n; i1 @% D
                        stack.push(result);
. [2 Y1 i: g) d! b4 T4 k                }4 m  @- \/ p! D8 b
                else
7 |4 l" R; g1 _$ g: }                {
' X& \$ N4 f4 _8 @                        if(postfix[i]!=' ')) }" u! `! P5 m2 A& p/ H
                        {5 {$ u6 L% c9 x/ h: u
                                int y = stack.pop();
% k+ q7 p* e7 Q" Q! M                                int x = stack.pop();/ i; _9 r- |, }" U0 z$ y9 `
                                switch(postfix[i])
$ Z% K' O9 L: S) b/ B                                {
+ }9 n, O- J+ o* P7 p* V                                        case'+':result = x + y;
7 U2 N! m7 w; |1 q! p$ j                                                break;
& M0 m0 H' P4 W1 l                                        case'-':result = x - y;
1 r: T6 _4 r* p3 e                                                break;7 e! p% _, V. l
                                        case'*':result = x *y;$ G) c3 H6 r  ^3 H
                                                break;7 _6 w/ s7 r0 Y5 z# K- c/ b
                                        case'/':result = x / y;4 ]) O+ Y9 o4 ]9 B1 i
                                                break;
5 X4 X! q( L1 A( X, Z) W5 O5 v                                }2 y; g' B8 O' z  o' A( X' `
                        stack.push(result);
9 u. g3 w+ T$ u  v* j# t                        }9 T/ y0 Q- B) I8 a. `
                i++;
/ R( u/ ]9 O$ I+ \9 O  y% n                }
* a2 e" ]2 p& q! M. D; [        }  K" c, E4 g. p7 \, D/ K. l
        return stack.pop();) Z+ R% \3 a' y0 ?& @" v/ B
}; w2 w% B, u7 R' `

8 k4 W5 U4 t. [- f5 n* N$ p8 I- h- Y; s0 }int main()
; Q7 W) R& L$ S  r- A{
' s2 ~* G6 l( w% U$ U //char *expstr = "121+10*(52-49+20)/((35-25)*2+10)";
. H5 a, U! ?2 [4 L7 u+ U6 ]7 p* v cout << "请输入表达式:";
  z  `+ I9 Z9 \1 F. R' I; N //char *a ;
8 I3 p* q9 m* O+ I" R' X6 h: ~% ]4 d //cin >> *a;: s- z. d) N: H3 P: W3 T
char expstr[20]={0};
' {6 P7 c* [8 e, ~ while(1)
' J8 U4 R$ R/ q! d/ S0 ~ {/ `6 ^" ]! h3 H7 H- @
cin>>expstr;
) Y  o5 H9 M: F char *postfix = toPostfix(expstr);
9 j, G( S' e$ T8 e+ a+ J         cout << "expstr= "<<expstr << endl;
/ W7 V6 D: R: _" m cout << "postfix= "<<postfix<<endl;
( M/ ^' `# E5 `4 I# D cout << "value= "<<value(postfix) << endl;
3 s/ I2 t/ {- V. I }, z0 Z0 ]% s5 [& K
return 0;% O: n, W' a3 A9 }1 O6 E9 A
}
回复 支持 反对

使用道具 举报

7#
发表于 2016-5-1 23:45 | 只看该作者
有一次有个游戏居然问X*Y=63,X和Y是多少,会背九九表的人都知道,可见他们的数学基础
回复 支持 反对

使用道具 举报

6#
发表于 2016-4-30 11:08 | 只看该作者
老外的数学绝对没我们学的深
回复 支持 反对

使用道具 举报

5#
发表于 2016-4-8 16:03 | 只看该作者
如果老毛子不算外国人的话,楼主的话勉强算正确。
回复 支持 反对

使用道具 举报

地板
发表于 2016-3-31 22:55 | 只看该作者
哪个游戏啊?
回复 支持 反对

使用道具 举报

板凳
发表于 2016-3-31 11:06 | 只看该作者
国内人数学也有差的,不能以偏概全
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2016-3-31 10:14 | 只看该作者
好了,找到第四种方法了
5 ^9 d8 {0 ^) D+ D# F% F1 r

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表