P1981 表達式求值

P1981 表達式求值

題解html

這個題聯想一下  P1310 表達式的值c++

 思路就是輸入中綴式,轉成後綴式,而後按後綴式計算,完美!!
 
 
 
but!!
會嚴重RE,由於你可能會輸入中綴式的時候輸入很是的長,而後你還要開棧,開後綴式數組,還要轉化,嚴重RE
 
 
 
What about 一邊輸入一邊處理??
How??
首先你必定會輸入一個數字(由於這是中綴表達)
若是下一個輸入運算符的話,必定要再輸入一個數字,而後模擬處理一下就行了
 
 
這道題的關鍵就是如何一邊輸入一邊處理
 

 

代碼數組

#include<bits/stdc++.h>

using namespace std;

const int mod=1e4;

int x,y,k,ans=0;
char fu;

int main()
{
    cin>>x;
    x=x%mod;
    while(cin>>fu)
    {
        if(fu=='\n') break;
        cin>>y;
        y=y%mod;
        if(fu=='+')
        {
            ans=(ans%mod+x%mod)%mod;
            x=y;
        }
          
        if(fu=='*')
        {
            x=x%mod*y%mod;
        }

    }
    
    ans=(ans%mod+x%mod)%mod;
    
    printf("%d",ans);

    return 0;
}
相關文章
相關標籤/搜索