寫個計算器,輸入完全符合要求的(,),+,-,*,/,數字組成的表示式,計算相應結果。
思路分先後順序遞迴拆解式子。
先對+ ,- 符合進行遞迴,直到全是 * ,/ 表示式,再對 * ,/ 表示式進行遞迴直到只有數字。最後返回計算。
**
#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...