[luogu 1981] 表达式求值 {字符串处理}

题目

https://www.luogu.org/problemnew/show/P1981


解题思路

虽然这道题真的十分简单,可是要注意细节(这个真的十分重要!!!)


代码

#include<cstdio>
using namespace std; 
int ans,a,ic; char ch,g; 
int main()
{
    bool t=true,b=true; 
    while (t)
    {
        scanf("%d",&a); 
        scanf("%c",&g); 
        if (g!='*'&&g!='+') t=false; 
        if (!ic&&b) ic=a,b=false; //要注意0*b的情况(而且偏偏在数据大的情况,才出现这种情况)
        if (ch=='+') ans=(ans+ic)%10000,ic=a; 
        if (ch=='*') ic=(ic%10000)*(a%10000); 
        if (!t) ans=(ans+ic)%10000; 
        ch=g; 
    }
    printf("%d",ans); 
}

猜你喜欢

转载自blog.csdn.net/qq_39897867/article/details/81056321