1 solutions
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int zh(string ss)//把多位数的字符窜数字转换成整形数字 { int len=ss.size(); int ans=0; for(int i=0,j=len-1;i<len;i++,j--) ans+=(ss[i]-48)*pow(10,j); return ans; } void ys(int a,int b,char s)//运算,计算两个数的计算结果 { if(s=='+') cout<<a<<'+'<<b<<'='<<a+b; if(s=='-') cout<<a<<'-'<<b<<'='<<a-b; if(s=='*') cout<<a<<'*'<<b<<'='<<a*b; if(s=='/') if(b==0) cout<<"NO"; else cout<<a<<'/'<<b<<'='<<a/b; } string s,s1,s2,fh; int x,y,a[5],t; int main() { // freopen("1031.in","r",stdin); // freopen("1031.out","w",stdout); cin>>s; int len=s.size(); for(int i=0;i<len;i++) if(s[i]<'0') a[t++]=i; //最多只有三个运算符号 if(a[0]==0) //第一个字符是负号,即第一个数是负数 { s1=s.substr(1,a[1]-1); if(a[2]!=0) //共有三个运算符号,即第二个数是负数 { s2=s.substr(a[2]+1,len-a[2]-1); x=-zh(s1),y=-zh(s2); ys(x,y,s[a[1]]); } else//有两个运算符号,即第二个数是正数 { s2=s.substr(a[1]+1,len-a[1]-1); x=-zh(s1),y=zh(s2); ys(x,y,s[a[1]]); } } else//第一个数是正数 { s1=s.substr(0,a[0]); if(a[1]!=0)//第二个数也是负数 { s2=s.substr(a[1]+1,len-a[1]-1); x=zh(s1),y=-zh(s2); ys(x,y,s[a[0]]); } else//第二个数是正数 { s2=s.substr(a[0]+1,len-a[0]-1); x=zh(s1),y=zh(s2); ys(x,y,s[a[0]]); } } return 0; }
- 1
Information
- ID
- 1069
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By