远古文明的算术题
遠(yuǎn)古文明的算術(shù)題 | ||
| Acceteped : 1317 | ? | Submit : 2471 |
| Time Limit : 1000 MS | ? | Memory Limit : 65536 KB |
| ? | ||
Description | ||
| 考古人員發(fā)現(xiàn)地球在一億年以前曾經(jīng)存在一個(gè)高級(jí)文明叫做Delta,而且發(fā)現(xiàn)這個(gè)文明的具有文字和語言。經(jīng)過艱苦卓絕的工作,專家們破譯了其中的一些文字和表示方法。他們使用+表示加運(yùn)算,-表示減運(yùn)算,*表示乘運(yùn)算,/表示整數(shù)除運(yùn)算,%表示取模運(yùn)算,但算術(shù)式的表示和我們不同,他們把要計(jì)算的數(shù)放到前面,運(yùn)算符放在計(jì)算對(duì)象的后面,比如 1 2 + 表示 1+2, 1 12 + 3 4 + * 表示(1+12)*(3+4)。考古人員希望你幫助他們編寫一個(gè)程序,計(jì)算出這些計(jì)算式的值。
第一行是一個(gè)整數(shù)K,表示有多少個(gè)測試用例,以后每行一個(gè)測試用例。每行為一個(gè)字符串(長度不超過200個(gè)字符),數(shù)和數(shù),數(shù)和運(yùn)算符,運(yùn)算符和運(yùn)算符之間分別用一個(gè)空格隔開,數(shù)都為非負(fù)整數(shù),且小于或等于231-1。(所有計(jì)算式都符合計(jì)算規(guī)則,不會(huì)出現(xiàn)不可計(jì)算的計(jì)算式,且結(jié)果都為非負(fù)整數(shù), 且小于或等于231-1)
每行輸出一個(gè)測試用例的結(jié)果。使用一個(gè)字符串表示計(jì)算以后的結(jié)果。 | ||
| ? | ||
Sample Input | ||
| 2 1 2 + 1 12 + 3 4 + * | ||
| ? | ||
Sample Output | ||
| 3
91 #include<iostream>
#include<cstring>
#include<string>
#include<stdio.h>
using namespace std;int change(char s[])
{int sum,i;sum=s[0]-'0';i=1;while(s[i]!='\0'){sum=sum*10+s[i]-'0';i++;}return sum;
}
int main()
{char s[200];int n,t[300],flag;cin>>n;while(n--){cin>>s;flag=0;t[++flag]=change(s);while(getchar()!='\n'){cin>>s;if(s[0]=='+'){t[flag-1]+=t[flag];flag--;}else if(s[0]=='-'){t[flag-1]-=t[flag];flag--;}else if(s[0]=='*'){t[flag-1]*=t[flag];flag--;}else if(s[0]=='/'){t[flag-1]/=t[flag];flag--;}else if(s[0]=='%'){t[flag-1]%=t[flag];flag--;}else{t[++flag]=change(s);}}cout<<t[flag]<<endl;}return 0;
}
| ||
總結(jié)
- 上一篇: 5、全面预算
- 下一篇: pajek19-20:精简社会网络