計算器 (正規表示式

2021-09-30 00:04:57 字數 1437 閱讀 8735

寫個計算器,輸入完全符合要求的(,),+,-,*,/,數字組成的表示式,計算相應結果。

思路分先後順序遞迴拆解式子。

先對+ ,- 符合進行遞迴,直到全是 * ,/ 表示式,再對 * ,/ 表示式進行遞迴直到只有數字。最後返回計算。

**

#include

using

namespace std;

#define maxn 100005

#define maxm 1006

#define ll long long int

#define inf 0x3f3f3f3f

#define inc(i,l,r) for(int i=l;i<=r;i++)

#define dec(i,r,l) for(int i=r;i>=l;i--)

#define mem(a) memset(a,0,sizeof(a))

#define sqr(x) (x*x)

#define inf (ll)2e18+1

#define pi acos(-1)

#define mod 10007

#define auto(i,x) for(int i=head[x];i;i=ed[i].nxt)

ll read()

while

(isdigit

(ch)

)x=x*

10+ch-

'0',ch=

getchar()

;return f*x;

}char s[maxn]

;doublef(

int l,

int r)

if(flag)dian*=10

; num=num*

10.0

+(s[i]

-'0');

}return num/dian;

}bool

isnum

(int l,

int r)

return

true;}

double

calc

(int l,

int r)

if(s[i]

=='('

)cnt++;if

(s[i]

==')'

)cnt--;}

if(jia>=0)

cnt=0;

inc(i,l,r)

if(s[i]

=='('

)cnt++;if

(s[i]

==')'

)cnt--;}

if(chen>=0)

return

calc

(l+1

,r-1);

}int

main()

return0;

}

練習 正規表示式計算器

coding utf 8 import re 正規表示式計算器 檢測錯誤 1 括號匹配 2 運算子檢查 3 非法字元 查詢括號,乘除,加減。運算 主函式替換 ret re.findall s 審核小括號 def check k s tag 0 for x in s if x tag 1 elif x...

正規表示式作業 計算器

dic defadd info filename user info with open filename,r encoding utf 8 as f lines f.readlines last line lines 1 id max last line dic id ifid max.isdig...

正規表示式實現計算器

author 來童星 date 2019 11 10 import re source 1 2 60 30 40 5 9 2 5 3 7 3 99 4 2998 10 568 14 4 3 16 3 2 做檢查 def check s flag true if re.findall a za z s...