1 solutions

  • 0
    @ 2025-12-15 11:58:22

    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