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

外国人的数学素质是差啊

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

外国人的数学素质是差啊

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

外国人的数学素质是差啊

游戏里有这样的谜题:要求8 y5 u7 t8 \8 j) c8 E
(A+B-C)*D+E-F=7
! B- E* f+ _, s% tA、B、C、D、E、F为11、9、1、6、4、2的其中一个数值。
  L4 J; c  V0 L6 b好吧!!+ s8 G+ k8 x9 `: A
第一解:  P, u0 h# Z! Y, O9 G% P. Q0 Z4 G

3 s2 c1 o# a7 E(9-6+1)*4+2-11=7
) ^- U& [& Q( R; u. ^4 A) L( E( j; A0 B
居然没通过
# q4 S4 a4 Y* C& }, f
; i4 F& e/ u" j' J) o/ n& ~好吧!继续,第二解:/ A, l/ r5 C! e3 `5 x) A) S
$ J0 L) l& V3 G  m/ Q1 A2 m" C
(9-4+1)*2+6-11=7
: z: c5 K8 i9 w8 C1 q8 z6 W  V4 u$ s! E
又说我是错的,
. i  f- ?2 _# \$ n8 K6 w- l) c# B( z2 `1 u* A
没关系,我还有第三解:
0 R3 V* V, Q% _5 `  [. [/ S2 B" d2 r$ m  D4 ]0 H
(11-6+1)*2+4-9=7
% @7 F3 D" D6 n/ E1 i* H7 b; w- u+ @; B. \3 i# k4 B3 {4 O3 i
我靠,又说我错的,我CAO,老外的数学全都是体育老师教的吗?我崩溃了; e( T$ V: p0 G$ g: m" S
$ s5 A' m! m9 H5 h& f, b, Q
还有没有第4解啊?第5解啊??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
 楼主| 发表于 2016-3-31 10:14 | 只看该作者
好了,找到第四种方法了  T) m6 `+ L0 `. m

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

8#
发表于 2016-6-23 11:23 | 只看该作者
代入以下代码,得:11,9,4,2,1,6 滑稽~' v; y. Q; S1 z, d6 V. `8 m
3 Y+ l4 Z! L5 e. r$ s( T
#include <iostream>
; m" {5 f% t5 g, d9 |* b2 @#include <string.h>
5 N0 v& n/ |) D4 g' [. U8 pusing namespace std;
1 w% d7 f  A9 \/ Xtemplate <class T>
! b. k6 r. j1 y/ z8 o* e8 yclass Node
1 I1 O( I8 [6 r. N4 Y, \7 f{8 f/ \; Z: ~2 v& H" x! f
public:8 i) C, x: k+ }3 @( X( v
        T data;/ b" {1 G' E# P6 o) `( w
        Node<T> *next;
7 f% Z, U$ C, q6 N8 l& P* g' i        Node()
4 o" H6 w0 d- |2 J0 S5 R4 m        {3 {! s$ Q4 M8 n' i
                this->next = NULL;8 W  [. _$ W% Y4 A* N# i
        }
  U) l$ Z$ E6 u        Node(T data,Node<T> *next=NULL)9 `- o- W. j. Q. ?
        {* }* p5 B6 r) C' w# x$ K" @
                this->data = data;7 a  W2 I8 g! `- e; M: v
                this->next = next;' c* X  W% r& x8 y
        }
6 h& i1 m$ V, U. I/ h9 _};; Z8 U/ O$ [# w+ ?9 j7 T! j

) C! Q3 B1 N7 X7 P" X) J& ~* Qtemplate <class T>
0 z5 K6 q" R/ q0 S( y9 }8 r7 a4 Bclass LinkedStack
2 h! Z. y6 o' R1 m. z{
7 g' {% u/ P9 g: D. ~  gprivate:
! F  Z+ B9 P4 f; X5 G- D8 M. D9 o        Node<T> *top;
" ~7 b& M: }$ [# ipublic:
2 f. W; q/ g" d4 x5 l" L        LinkedStack();7 i8 a1 Z) u, @, w; @) M$ J
        ~LinkedStack();
' H* A8 M) B7 g: }8 k5 B& U8 W        bool isEmpty();
$ E" q: M2 n. @' s3 z- j, B        void push(T x);
; H5 M( a9 @, k% b. F8 d, N$ V        T pop();
3 Y: |- M/ i! m4 P% e+ Z0 G/ W        T get();
' N# k1 e  D2 H) R" R};
8 f5 m$ G5 b) B: _
( f- `3 j, `0 d" {  h: Etemplate <class T>
- c3 V& w1 P' _% z; U# R0 S5 rLinkedStack<T>::LinkedStack()
2 o& _, u+ A8 c3 Q3 o4 B{3 G2 Y2 E2 d7 B' c
        top = NULL;) Q/ `+ ~% F. k
}
/ K2 Q  ]1 L8 v! v' L! p0 H: L& b. U6 P
template <class T>6 }; y* A9 l7 q4 i/ m
LinkedStack<T>::~LinkedStack(), F% o& ?5 I5 e( x  A- h
{* l' a0 \/ m" v+ t; v2 R! g, B
        Node<T> *p = top;0 C" O7 T- t+ c- O; V8 V+ z
        Node<T> *q;
# ]- H( V# y1 I, \/ A, f        while(p!=top)3 d& t: \4 b6 b( Y  x
        {0 J. ]6 |* B5 {  h4 p& ]6 h5 u
                q = p;
% n* d( w  _' p8 h. ]8 J' W* e                p = p->next;
7 j0 @$ X9 E6 ?! ~                delete p;
* k: l8 r9 G, d9 }# \9 t        }5 ~' s- P5 {1 ?  _2 P0 k9 |+ T
        top = NULL;1 E0 k3 L% q' \1 s5 L7 {1 Y
}
& y  L! l0 L; v. k( y" q- F* ^. P& A5 x6 A4 @/ P! K- G$ {! [  l
template <class T>
8 U; z" @3 M! K. e1 |2 D% wbool LinkedStack<T>::isEmpty()6 x3 ~7 B$ v! j0 g
{$ e" X3 L5 `+ m( v
        return top == NULL;" S0 }& X2 T9 `
}+ S- x5 C" T# n
; l6 D. {7 a+ [& w" z
template <class T>
; [' j/ o& z& }# b" a* ^) }2 Dvoid LinkedStack<T>::push(T x)6 q/ G- D6 r. g2 @+ M3 k9 q
{
" f3 n' O/ Z' I5 L% w1 P+ g6 h+ x! \        top = new Node<T>(x,top);: ]! w, t- Y( \" g( q0 Z
}
7 {9 Y1 n( x( J* m
  Q' w) Y; W& ptemplate <class T>' z/ s$ ]7 F9 @& @4 t# K
T LinkedStack<T>::pop()% N$ h+ x, H, r, s0 J9 A
{! G  u6 T2 l, E+ i" Q. b
        if(!isEmpty())0 n: N6 n; X& O% \- \+ p, y# J! V. z
        {
2 S, g% d8 _- Y8 |1 `  T                T x = top->data;
6 G9 Q* N, p$ Y                Node<T> *p = top;
% M- n1 |3 g+ J# T                top = top->next;
) `4 Z/ q6 K+ \: }                delete p;
. x: @# E+ q) C5 r! i                return x;
: \) T& j. v$ q6 h0 s5 m) U        }% d9 ^6 a# D' z& e- R2 o' D: T: D
        throw "空栈,不能执行出栈操作";: c2 h$ l& Y4 j5 R/ @' q) }
}
1 L& E3 i" |2 r6 Z6 z& e$ B
- {9 R0 G) j* p* x$ m& Q6 ktemplate <class T>
3 c! _, N  Q2 f: K/ I! Q- J+ QT LinkedStack<T>::get()
5 M, a8 `5 }  c: ]4 T  y{) l# x' s, q3 S
        if(!isEmpty())
& w7 `* U2 t2 W! L. l        {& e, _; `/ E. l8 a, D$ ]0 z1 U
                return top->data;
, j0 z+ x6 I) x6 R- ~3 `        }% F4 ^) Y+ ^' @' N5 F/ Y& e
        throw "空栈,不能获得栈顶元素";$ \- [  h. f+ d& w/ p# T
}
( j/ v: N. K4 ~3 V$ z; L4 c' y* m6 y. P6 Y
char * toPostfix(char *expstr): Z/ w- x* Q: `3 c3 w! @
{7 J: n, V( Q9 R- D, L1 H6 O
        LinkedStack<char> stack;; ^( U: `6 ]9 e8 a. j6 q, F
        char *postfix = new char[strlen(expstr)*2];, i: Y; D; N! a5 O! O! Z
        int i=0;: h" O9 z' j! O3 Q  j) l* |  Q
        int j=0;! t+ m; ?) o/ v3 \% ^
        char out ;
) X6 n0 X9 r1 v        while(expstr[i]!='\0')
) h8 W) d& O0 p$ H        {
' ?$ J( _$ W% l  ?, n                switch(expstr[i])
0 \6 i5 t- _* z' [" o  w8 A                {8 |4 V: D* M. a3 t% |) [( M
                        case'+':' n- S8 X; o5 ^' r$ v) q
                        case'-':# D  H: F+ C+ s0 A
                                while(!stack.isEmpty()&&stack.get()!='('); x( t; h# B: M2 a0 d2 r; ]
                                {
- ]) j' W1 V* S% U3 m% s                                        postfix[j++] = stack.pop();
; x5 n1 [' a8 N# ^                                }
" [& t& w" q6 H                                stack.push(expstr[i++]);& f% b( W- x  @1 U+ P
                                break;
& e2 j$ S0 c* I                        case'*':6 |4 U4 z9 a# I  j
                        case'/':; k$ `- B1 M* V2 t& P- z, {6 Q
                                while(!stack.isEmpty()&&(stack.get()=='*'||stack.get()=='/')); z1 x' U" O8 W  ^) G0 h# Y
                                {1 L9 w6 G' ]8 \2 K
                                        postfix[j++] = stack.pop();& `7 E1 v5 m5 J8 g% `0 \
                                }
2 I7 i. j: `4 b                                stack.push(expstr[i++]);2 j7 ~" b# n. }0 N4 i7 \
                                break;; R* c( f/ R- q& q. H* v5 @
                        case'(':stack.push(expstr[i++]);
4 D( m9 v! P+ n, X3 ?* _/ S7 Q: e                                break;& c2 V3 l% y4 ~, O5 `
                        case')':out = stack.pop();
3 c# x& [8 ]2 V# I5 m                                while(!stack.isEmpty()&&out!='(')
3 U& S  Y" U8 t7 W( T                                {1 ^2 y0 V$ `9 d; ~7 W% G
                                        postfix[j++] = out;1 U& }: W7 O: f' ^  Z
                                        out = stack.pop();- _' @, b& x6 u# R) T, H
                                }! M+ i+ r& S  `
                                i++;
7 U8 i7 [; d0 o7 @8 Z2 d                                break;. x  \/ c9 Z- G) S+ n
                        default:3 f8 L' o; Q2 ^. \1 y& w
                                while(expstr[i]>='0'&&expstr[i]<='9'&&expstr[i]!='\0')$ Y; C+ F" p/ N& L; t
                                {1 x# ?* U2 D# }9 V+ L/ [
                                        postfix[j++] = expstr[i++];" e. w: S5 @6 L1 T# W! M
                                }
* J1 `! H$ q0 d1 {9 o# ?8 J3 ]                                postfix[j++]=' ';
+ ~! Z* c/ ^2 d6 U! J                                break;7 I3 c9 }6 I  I/ X/ e% H' I2 ~* X
                }
' l0 Z! t9 H4 ?- O        }
* Y  }( q2 O6 C! O! L7 w        while(!stack.isEmpty())
6 O' ~/ s& K( e. S$ A8 L4 {        {
- J4 g. g8 x) V- j* T8 _                postfix[j++]=stack.pop();
# F8 w" J+ V* `/ X# _        }5 c; N3 A% T, ~% p+ B; H0 @8 x1 x3 t
        postfix[j]='\0';% {4 c! k! I  Y+ Z
        return postfix;3 ?! F" B9 H# z- ^
}2 Q- X( w, [* ?  U6 A

5 ~  \- G* i6 I9 q: y6 g8 Hint value(char *postfix)
2 f$ e# l! K5 v{0 v3 n3 q. |: \' V6 [
        LinkedStack<int> stack;* f# `* C$ z7 f6 D, W
        int i=0;
( c! s9 _8 A+ k2 c3 W: l) K        int result = 0;
- q; S- x2 M) }' _! ^        while(postfix[i]!='\0')
( \* j; A) ~9 l  i! t1 O; {4 f        {
! U, b4 C5 g# S8 `/ n                if(postfix[i]>='0'&&postfix[i]<='9')
; F. ~4 h8 d8 K                {8 _' t4 O% U% M
                        result = 0;$ i3 c+ o# L$ S  u
                        while(postfix[i]!=' ')( ~9 P: a  X+ o. H
                        {
" _, k7 g6 W  Y# d/ n- J                                result = result*10+postfix[i++]-'0';
; ^% S; U( R! r0 K                        }5 Y% K/ T+ c1 N) P6 a
                        i++;
% D: f8 a( r7 W% r5 }  c% n                        stack.push(result);$ E( M9 W6 p& m5 |' p! w! @- y
                }1 B4 `! ?5 |# i5 |# F
                else
) Q$ f1 k# i* e0 z                {
2 J" U" ^! ~7 ^6 j$ y3 Z( E                        if(postfix[i]!=' ')
% G( M' f1 V) |5 w) Y# S( S( x                        {
+ C9 o$ j! ~, l3 h; `7 c- o                                int y = stack.pop();
5 |) l, D- P" q, M& q$ A5 l9 o                                int x = stack.pop();0 Q: [9 D: P+ K. w& B2 }5 ]4 Z
                                switch(postfix[i])+ F; q0 t" d! a* I: \
                                {
* @' v5 C0 k3 v% h* w                                        case'+':result = x + y;, |! v" J! p6 @  {" Y
                                                break;
9 x/ h& D; [" |7 E* q1 f& `9 R. ~                                        case'-':result = x - y;/ P; R1 ?. p8 P
                                                break;
1 K- x' G! J0 g                                        case'*':result = x *y;: i8 F6 ]1 z0 {0 }8 O
                                                break;
4 Q" Y; N8 ?% m7 a" @                                        case'/':result = x / y;
& t, P( K* }( X( i, P                                                break;9 t: Y$ L$ `8 k. T# b# C- z
                                }/ V- _  B* _$ t) R. V5 E
                        stack.push(result);7 a/ N* c" O0 i6 ?7 R
                        }9 x9 ?+ K- t0 F+ b( ?) L( W# O. |3 F
                i++;
$ K" F/ {4 [" ?6 p" J                }
! D1 W/ x0 s- s+ q! g8 k        }
5 i% J" \" U0 R8 v8 H) p        return stack.pop();
" u3 A% Y+ u! ^: b+ D8 a}) Z9 {$ ?' C" g7 I, y
9 Z3 ]! ~- X, h+ I( v
int main()
: D, A5 @/ n& v{( x/ p5 r/ i* L1 ]2 v  a
//char *expstr = "121+10*(52-49+20)/((35-25)*2+10)";
8 b0 T; J  i" U: @ cout << "请输入表达式:";
7 b8 y. U  s: s* f6 |7 W //char *a ;
; o( }7 h+ d' a9 m! T7 T7 k //cin >> *a;3 @6 h. D4 `; H
char expstr[20]={0};
: [1 @% G/ M) V while(1)) o' _/ a) p0 A2 k0 r
{
) ?. L! a: e& N3 X cin>>expstr;6 H3 F* D! K( T1 G
char *postfix = toPostfix(expstr);4 p$ d; k/ b2 k5 g: }
         cout << "expstr= "<<expstr << endl;
9 `$ g9 G# v4 m, t* L cout << "postfix= "<<postfix<<endl;
7 w1 _: Z9 j6 t$ B2 E' L7 m cout << "value= "<<value(postfix) << endl;4 Q0 X" w  j; u0 ~
}6 F0 V8 Q, `+ B' D
return 0;7 {% Q- E( X+ f' |2 Q5 ]3 B6 W
}
回复 支持 反对

使用道具 举报

9#
发表于 2016-6-23 11:24 | 只看该作者
caimicn 发表于 2016-3-31 10:14
" ?3 e; `9 @' l& G/ w9 l5 M2 ?  Z好了,找到第四种方法了

9 \) k( T' O0 `- n3 R3 O/ G代入以下代码,得:11,9,4,2,1,6 滑稽~  c0 i& t$ }1 E/ J# S: S# b

7 |" K  y* q/ `2 ~#include <iostream>) t- J" }. J* o( S
#include <string.h>
& e0 @" ~& _/ ?# \% Eusing namespace std;
7 L+ ^# |" Y6 m; E, V& h* A( ]template <class T>% w( ^+ V2 C% Z
class Node5 U( g5 R7 H8 W0 f: Y2 V
{" e4 u! ]- Z5 E- \, w5 {) W4 f
public:$ `+ I6 C- q+ g
        T data;! i! ~4 N7 x1 Q6 K* _) N; p
        Node<T> *next;
" t. @0 c4 W+ k# N, [+ F# R        Node()! s* o8 j  u( {) C/ ?
        {
7 K$ Q2 Y. k- d- K5 g0 g+ {8 n                this->next = NULL;2 A; l9 g- J, j4 X/ W% |
        }
9 ?, U5 I  R: g2 m! l        Node(T data,Node<T> *next=NULL)( s, z% v. r7 }+ C8 s0 b0 y8 n
        {, g% A: M5 `8 U; a7 f
                this->data = data;
+ i9 z' q/ Q+ u" p7 T                this->next = next;
, X: [5 \, [; n0 J        }
% I. ]' m1 K% k4 s};% B- j  e3 H; F4 i
* x: Y4 E) Z+ m) ^2 A
template <class T>
8 |8 e* j/ k; vclass LinkedStack! a# K5 [- A. d/ i
{
6 R% K) H% j9 |4 [) O; ~% Y7 @private:
& A5 t  u) s$ L2 o        Node<T> *top;
, e1 a! B) J$ A" c  r8 `6 ppublic:
: P9 w8 X" `6 v% ?  J        LinkedStack();0 k, {& }2 [, ^4 {
        ~LinkedStack();
: Y# Y+ S6 M$ c        bool isEmpty();
3 J' `* f% d. Y7 W: a1 r        void push(T x);- _- v7 {. L' E
        T pop();
& M% F, c* v, S& g/ j        T get();5 F" `% N$ F5 z# ?0 u* ]$ ?
};& W0 ^* {0 ~3 `4 P% o
8 c2 Q: |( y8 I! f( m- f/ c
template <class T>  H& b7 f0 K+ i6 {. W& |1 ^
LinkedStack<T>::LinkedStack()- Q( d, E6 G( O5 _7 Y6 m) [9 U: L$ s
{
$ v6 R2 @! c5 W, s% _& A        top = NULL;
- R+ E% u8 B5 `3 o  S, ~0 V1 u}% r: o9 c3 B+ E& q4 y
/ E3 Q+ Z6 h; H4 \
template <class T>2 X6 B5 k; I, C* ^7 ~; r# k
LinkedStack<T>::~LinkedStack()' D# V3 e# [4 \9 K
{
% y! Y9 [0 Z, q! ^        Node<T> *p = top;8 m4 z0 @: Z" P
        Node<T> *q;- z$ m+ A9 f0 A0 F" }3 h
        while(p!=top)
6 V; N. T- W$ e        {
+ W  Q6 z" t# b7 \                q = p;
5 F; T. ~. M% W# J                p = p->next;$ W. [, p0 N0 ]6 N2 s' n
                delete p;3 W& f" Y! O3 u0 A  Q& F7 z! R5 i6 g
        }
. F3 c& q$ @$ y# M4 Z0 ~        top = NULL;6 `& `  ?1 ^6 e. a( \
}
) @7 h7 D0 y  R5 f$ p4 `' {
7 d! @. h( I' [/ s& @' f2 Rtemplate <class T>
) h* l6 w# x! l/ vbool LinkedStack<T>::isEmpty()
& n9 J4 {: f3 ?0 x% P2 z$ o& c{
' c% W& G+ @7 Z* `        return top == NULL;- b8 |& o7 c! C$ I
}
9 @/ V3 n8 `) I0 ?- E$ t. U2 R" f  t' s; Q/ @4 r0 f
template <class T>
0 n, `* d7 `6 }' nvoid LinkedStack<T>::push(T x)' e. d" g/ [9 c3 v9 n
{
+ P8 j+ @4 d/ t" G        top = new Node<T>(x,top);
* h0 l' w' r6 t: S# D  n) Q, D& F}
7 L( |/ q' b  e9 w2 N
$ e, U  ]) o, x8 ?template <class T>0 T# i; Q  k& ~: Q) W
T LinkedStack<T>::pop(); r8 E8 Y4 G# G- y  }1 L; c
{) a/ Z" q1 m7 J7 Y! }
        if(!isEmpty())
" e9 P; D! z; ^3 @5 D+ g; y& V* J        {" y( q/ f, O5 M$ W2 \% y5 u4 U6 W
                T x = top->data;: Z( f0 G, n, t2 N$ s4 a, r
                Node<T> *p = top;- H( v1 g5 z1 V% J1 D5 i! I
                top = top->next;
  A# b9 ]8 I9 ~) s                delete p;8 @+ J  b+ e. E
                return x;+ H; N8 X( G4 g
        }: M7 g9 s' k" N; k
        throw "空栈,不能执行出栈操作";; T' ?5 Z8 J( a+ Y
}
5 ]4 h% S  Z+ _8 W4 m* d" f5 k; _1 p. y( {4 Y" h
template <class T>
4 S; w: s' ~. @$ dT LinkedStack<T>::get()
9 Y# ]* h$ G- g& _{
8 u0 V# ~6 u& C$ E& h# A- F        if(!isEmpty())
6 y; N2 ?6 D" d7 w% z- k6 \        {( k" M# o# x3 g$ I% d) `
                return top->data;
. a/ @0 a% ?$ c+ u* {1 d9 E        }! k) n! D: M% @* k4 n% l3 E
        throw "空栈,不能获得栈顶元素";; A& I" L5 x6 C% R
}& o3 _7 n+ h/ P$ D
7 n( U* |& I& n* y
char * toPostfix(char *expstr)
; i* T) r& ]# g{* c! j4 |) J( A2 a1 L
        LinkedStack<char> stack;" _) \# V" q6 x- t* h. Y3 x
        char *postfix = new char[strlen(expstr)*2];
1 e) n% k+ J" h        int i=0;
! q) K% {0 _% i( s" @        int j=0;
& m$ G3 y1 Y4 [" Q4 M. l, z' M" o        char out ;
" a8 P( A( M+ g! Z9 F2 p# P2 k2 n        while(expstr!='\0')
& U9 X0 L/ A$ }' w4 H7 X! p1 K        {/ {  e9 u# |1 I0 Y5 B/ S5 _
                switch(expstr)7 ?6 {, B. |9 W/ p* I3 ?% ^( j1 `$ ^
                {+ l1 Q, f+ J) K
                        case'+':7 N( j, h* ~( V5 f! C; j& }; x
                        case'-':8 i# X& h; Y; @8 }8 A0 H3 }4 R' Z  b! s
                                while(!stack.isEmpty()&&stack.get()!='(')
3 N5 N7 U% D3 R1 _* Z) I. I3 Z  }                                {
' W; `* \* R; O& O5 h5 E8 j6 v! y+ \                                        postfix[j++] = stack.pop();
9 {6 N0 [; Z6 v& Z$ Q                                }% v/ i, Z6 v. V: \( ^
                                stack.push(expstr[i++]);
4 ?' N9 P2 `& F. `0 k; s7 Q! E                                break;
9 I6 O" t0 p; ~  w8 s                        case'*':
+ T+ X3 `6 V+ s* f- ]4 h                        case'/':
' `- Y9 P# x# E' ?, \                                while(!stack.isEmpty()&&(stack.get()=='*'||stack.get()=='/'))) \$ v4 z: U; ^+ k6 y* a0 p
                                {# v, m" j3 @& t. ~+ g' E$ b; `! P, @
                                        postfix[j++] = stack.pop();9 D' k/ f- u- r0 }
                                }* O; p* D, {! Q  C+ I* y9 g
                                stack.push(expstr[i++]);
3 }2 F0 k' P/ Z8 w                                break;
" W- {! F. G$ V$ \. x7 m% e# Y                        case'(':stack.push(expstr[i++]);& V  E/ F, i( @5 U3 A. u. w/ i
                                break;. s( J; R+ @% e
                        case')':out = stack.pop();
* i( P0 i* z& k9 l. b8 ~5 `; {- @                                while(!stack.isEmpty()&&out!='(')
/ D- y/ v, c1 J* ~. h- k' |- g* A                                {' |! I7 o/ |+ W: B1 |- A5 ?
                                        postfix[j++] = out;
& ?9 O; s# p  p: C7 U: E5 n% N                                        out = stack.pop();( b- M1 S" X; z4 C+ P: I; P$ K
                                }! ~6 \  r& b& C3 k/ K
                                i++;
, w8 u+ q5 Z, {/ \( `* x4 e                                break;
2 L# ~$ @! X& A- Z# Z                        default:
+ Q, c, b3 p- `4 m                                while(expstr>='0'&&expstr<='9'&&expstr!='\0')  `7 ^! p# L8 ^
                                {
% q; \/ H! c- X% ~- b5 z0 w                                        postfix[j++] = expstr[i++];' T1 D* I; g& y0 ~+ N. K
                                }) g6 Z& C; ]. t0 m
                                postfix[j++]=' ';
0 D/ e, \3 i% W$ d: R& R                                break;& K. f8 G5 n2 G- H- u6 h9 C
                }
9 O8 @) i( R, y% c9 C4 _        }
& D1 F" d. E6 ]( g, {3 Q$ q8 G. T! b        while(!stack.isEmpty())1 N5 ]3 k; X8 z9 }1 g$ o+ o6 f0 I6 O
        {" R/ ~. o2 ?3 o8 B* G+ K8 P
                postfix[j++]=stack.pop();
+ E5 p" v! i2 F  d9 p  e( p% U        }
. D, N5 m. `& g7 a; H5 q( O        postfix[j]='\0';
% }: a3 W2 S+ s" V        return postfix;+ ~& p' I" A' z% n' m
}
) k4 S, O& {5 k- f, ]8 a+ V6 H! L  L3 X2 k  A+ p& `# K/ e1 p
int value(char *postfix)( M2 O4 [9 J5 K! v% a" n
{5 r- ]5 ~" S2 l+ p8 t* C7 Y
        LinkedStack<int> stack;0 S& T9 ]( Z) R, O* {9 |
        int i=0;
1 [; Q$ Z- p; _# F        int result = 0;
1 @( o1 ]0 m$ s        while(postfix!='\0')
' s2 n- O; L" |9 ]7 ?        {/ K2 u2 _( m* L- q  o1 q: q
                if(postfix>='0'&&postfix<='9')" l5 L( f1 O# n9 s) b+ X( U8 \( E8 P
                {7 m& h5 v9 H) D8 Q+ J7 q9 w" i0 \
                        result = 0;
! K& |% _) o# y9 f2 k$ }                        while(postfix!=' ')2 a! @& x) K/ {/ T8 Y. u- Z. b& U
                        {( P' r" m( w! Q
                                result = result*10+postfix[i++]-'0';
; u' U6 r6 g1 \                        }
+ h  F* F: R* `3 u                        i++;
( |" V0 A) N1 z( J& {* j                        stack.push(result);
" L4 Y1 Y$ h# F- B( o  j6 Z; w                }
7 p4 X( ?9 D& i: d* Y% s                else
/ o: q( v$ G4 }+ j9 Z4 u) W& M7 T                {: Q- ?; A6 K- I6 e& b
                        if(postfix!=' ')
; s/ b# e' u! e# q+ {. G4 k6 V3 z                        {' ^& P* {! Y5 Y1 B$ \) R0 r
                                int y = stack.pop();
$ [1 O3 p. V! D9 B  K                                int x = stack.pop();" f% K" ]1 m9 N- ?, S+ E1 |& k
                                switch(postfix)
7 q# h) b% `5 Q, V8 ?: w0 ?                                {
5 r5 V  C3 c; \2 P0 V. x                                        case'+':result = x + y;
8 n" E2 a& p' I' b! c/ x5 h. b8 F# Z                                                break;
) p* m2 t" z; H1 k7 e- e( q                                        case'-':result = x - y;
+ @5 O  S5 `% D" m9 _                                                break;
$ l3 g: H5 h) {: i! u                                        case'*':result = x *y;% [( J% A% y* ^# @2 A& I
                                                break;
5 W% \( J  N' _4 p1 V                                        case'/':result = x / y;" |' S% e8 X* [5 W+ b1 S2 Z" j
                                                break;
% ^; l+ n' P2 B% U" t' D4 J) i                                }9 Q* E" A& y7 f; b) n5 J
                        stack.push(result);
: a( r7 C9 m/ {. R% z6 i                        }  |5 j& J: K  s# Z
                i++;/ W7 |; s& m% A5 c+ [+ h" k
                }
4 k  R$ I, A4 _9 [; a- N; H        }" A* M% Z; a7 ?& r$ c% ^7 X) Z/ x
        return stack.pop();
2 J6 ]; I7 `& h/ f9 h- |6 U5 y# r3 Y}3 x9 F; q! L1 C; P

9 w6 W9 P+ C/ eint main()4 p6 i9 ?' N5 T" T' g2 K, q
{! O3 b& p- M# W
//char *expstr = "121+10*(52-49+20)/((35-25)*2+10)";
: ^& Y" C7 z7 v; Z$ o( X cout << "请输入表达式:";+ f1 B# s' m$ N
//char *a ;3 N5 W3 x% S8 ^
//cin >> *a;4 i) p% {0 p, R) d( l
char expstr[20]={0};
3 n- y4 C# w8 R" }: I2 N while(1)
5 c4 @' Y% o( t {1 _' M0 s/ @% X- [
cin>>expstr;" @- g% f* w4 X' R
char *postfix = toPostfix(expstr);
2 ~% q' t, Y' T/ m) L$ p9 w         cout << "expstr= "<<expstr << endl;% T' e( |- h3 g5 S2 h
cout << "postfix= "<<postfix<<endl;, \- I4 l( q2 m$ z; b, x
cout << "value= "<<value(postfix) << endl;
- Z: N, _# w3 k. T: o- J3 S }8 F; e; M( n' W1 P! e* S' U7 r
return 0;
2 G# ?; C$ h; U; v# P' U}
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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