- 编程
计算机
- 2025-5-4 17:11:18 @
上代码!
/*计算机
有加,减,乘,除,幂次
不能打括号
求括号打法*/
#include <bits/stdc++.h>
using namespace std;
//快速幂
long long power(long long a,long long b){
long long ans=1,sum=1;
while(b!=0){
sum*=a;
if(b%2==1){
ans*=sum;
}
b/=2;
}
return ans;
}
int main() {
string s;
while(cin>>s){
if(s=="over"){
break;
}
long long fuhao=0,ans=0,sum=0;
for(long long i=0;i<s.size();++i){
if(isdigit(s[i])){
sum=sum*10+s[i]-'0';
if(i==s.size()-1){
if(fuhao==0){
ans+=sum;
}else if(fuhao==1){
ans-=sum;
}else if(fuhao==2){
ans*=sum;
}else if(fuhao==3){
ans/=sum;
}else{
ans=power(ans,sum);
}
}
}else{
if(fuhao==0){
ans+=sum;
}else if(fuhao==1){
ans-=sum;
}else if(fuhao==2){
ans*=sum;
}else if(fuhao==3){
ans/=sum;
}else{
ans=power(ans,sum);
}
if(s[i]=='+'){
fuhao=0;
}else if(s[i]=='-'){
fuhao=1;
}else if(s[i]=='*'){
fuhao=2;
}else if(s[i]=='/'){
fuhao=3;
}else{
fuhao=4;
}
sum=0;
}
}
cout<<ans<<endl;
}
return 0;
}
0 条评论
目前还没有评论...