表達式求值1(博客裏還有不同版本的

題目描述
給出一個表達式,其中運算符僅包含+,要求求出表達式的最終值

輸入
僅一行,即爲表達式

輸出
僅一行,既爲表達式算出的結果

樣例輸入
1+1

樣例輸出
2

提示
表達式總長度< =1500

//從最後一位數開始查找,遇到加號表示這個數結束,然後前面的事另外一個數,加起來就行(簡單暴力模擬)

#include<bits/stdc++.h>
using namespace std;
int ans[1501],num[1501],ansl=0;
char s[1505];
void get(int x)
{
    for(int i=0;i<x;i++)
    {
        ans[i]+=num[i];
    }
    ansl=max(ansl,x-1);
    for(int i=0;i<ansl;i++)
    {
        ans[i+1]+=ans[i]/10;
        ans[i]%=10;
    }
    if(ans[ansl]>0)++ansl;
}
void add()
{
    int i=0;
    int x=strlen(s);
    while(x--)
    {
        if(s[x]=='+')
        {
           get(i);
           i=0;
           memset(num,0,sizeof(num));
           }
        else num[i++]=s[x]-48;
    }
    get(i);
}
int main()
{
   cin>>s;
   add();
   for(int i=ansl-1;i>=0;i--)
      cout<<ans[i];
   return 0;  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章