Tyvj 1041 表示式計算2

2021-07-16 14:16:45 字數 1029 閱讀 6556

給出乙個表示式,其中運算子僅包含+,-,要求求出表示式的最終值

保證資料中不會出現負數,並且同時保證,如果你按從左到右的順序計算,同樣也不會出現負數的情況。

僅一行,即為表示式

僅一行,既為表示式算出的結果

1+1-1
1

表示式總長度<=255

表示式中數字位數<=255

一道大數加減法的問題,完全可以把減法看成加法,相加相減時都不考慮進製借位,到最後統一進製借位處理,這樣會更簡單一些。

舉個例子:5247+823-299-11

7  4  2  5

3  2  8

-9 -9 -2

-1 -1

=      0 -4  8  5

最後看哪一位上》=10或者<0,在進行借位和進製的運算。第二個數-4小於0,就給他加上10,前面的8減去1,結果就是0675,逆序輸出得到5760.

#include#include#includeusing namespace std;

char b[260],s[260];

int a[260][260];

void add(int x,int y)

void mult(int x,int y)

int main()

else a[q][p++]=s[i]-'0';

}for(j=q-1; j>=0; j--)

for(i=0; i<256; i++)

}else if(a[0][i]>=10)}}

int f=0;

for(i=256; i>=0; i--)

}if(f==0)

printf("0");

else

for(i=k; i>=0; i--)

printf("%d",a[0][i]);

printf("\n");

}return 0;

}

tyvj 1041 表示式計算2

from admin 表示式計算2 描述 description 給出乙個表示式,其中運算子僅包含 要求求出表示式的最終值 保證資料中不會出現負數。輸入格式 input format 僅一行,即為表示式 輸出格式 output format 僅一行,既為表示式算出的結果 樣例輸入 sample in...

表示式計算2

在這裡,我採用了另外一種方式計算表示式 由於表示式是中序表示式,首先,將表示式變為後序表達,然後利用逆波蘭式的方法計算,僅僅只用乙個數字棧即可。但是該方法的缺點是 只能計算單個字元的運算,因為對於百位等數字計算,後序表示式數字有歧義。ood.cpp 定義控制台應用程式的入口點。include std...

表示式求值(TYVJ1043)

我他喵的被這題氣死好吧。2年前的我調了3個小時,2年後調了1.5個小時 求乙個中綴表示式的值 小學生都會好吧 首先 計算機最喜歡的一定是字尾表示式,我們只要從頭到尾遍歷,然後碰到數字就壓入棧,碰到運算子就直接取出棧頂的2個元素直接進行計算,並將結果壓入棧。那我們這裡要做的操作就是將中綴轉成字尾。怎麼...