设为首页 加入收藏

TOP

UVA - 11291 Smeech (模拟)
2015-07-20 17:45:03 来源: 作者: 【 】 浏览:7
Tags:UVA 11291 Smeech 模拟

Description

Download as PDF \

Problem B: Smeech

ProfessZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vciBPY3Rhc3RpY2hzIGhhcyBpbnZlbnRlZCBhIG5ldyBwcm9ncmFtbWluZyBsYW5ndWFnZSwgU21lZWNoLiBBbiBleHByZXNzaW9uIGluIFNtZWVjaCBtYXkgYmUgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBpbnRlZ2VyLCBvciBtYXkgYmUgb2YgdGhlIGZvcm0KPHR0Pig8ZW0+cGU8c3ViPjE8L3N1Yj5lPHN1Yj4yPC9zdWI+PC9lbT4pIDwvdHQ+d2hlcmUgPGVtPnA8L2VtPiBpcyBhIHJlYWwgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSAoaW5jbHVzaXZlKSBhbmQKPGVtPmU8c3ViPjE8L3N1Yj48L2VtPiBhbmQgPGVtPmU8c3ViPjI8L3N1Yj48L2VtPiBhcmUgU21lZWNoIGV4cHJlc3Npb25zLiBUaGUgdmFsdWUgcmVwcmVzZW50ZWQgYnkgYSBTbWVlY2ggZXhwcmVzc2lvbiBpcyBhcyBmb2xsb3dzOgoKQW4gaW50ZWdlciByZXByZXNlbnRzIGl0c2VsZiBXaXRoIHByb2JhYmlsaXR5IDxlbT5wPC9lbT4sIDx0dD4oPGVtPnBlPHN1Yj4xPC9zdWI+ZTxzdWI+Mjwvc3ViPjwvZW0+KTwvdHQ+IHJlcHJlc2VudHMKPGVtPngmIzQzO3k8L2VtPiB3aGVyZSA8ZW0+eDwvZW0+IGlzIHRoZSB2YWx1ZSBvZiA8ZW0+ZTxzdWI+MTwvc3ViPjwvZW0+IGFuZCA8ZW0+eTwvZW0+IGlzIHRoZSB2YWx1ZSBvZgo8ZW0+ZTxzdWI+Mjwvc3ViPjwvZW0+OyBvdGhlcndpc2UgaXQgcmVwcmVzZW50cyA8ZW0+eC15PC9lbT4uIApHaXZlbiBhIFNtZWVjaCBleHByZXNzaW9uLCB3aGF0IGlzIGl0cyBleHBlY3RlZCB2YWx1ZT8KPHA+SW5wdXQgY29uc2lzdHMgb2Ygc2V2ZXJhbCBTbWVlY2ggZXhwcmVzc2lvbnMsIG9uZSBwZXIgbGluZSwgZm9sbG93ZWQgYnkgYSBsaW5lIGNvbnRhaW5pbmcgKCkuIEZvciBlYWNoIGV4cHJlc3Npb24sIG91dHB1dCBpdHMgZXhwZWN0ZWQgdmFsdWUgdG8gdHdvIGRlY2ltYWwgcGxhY2VzLgo8L3A+CjxoMz5TYW1wbGUgSW5wdXQ8L2gzPgo8cHJlIGNsYXNzPQ=="brush:java;">7 (.5 3 9) ()

Output for Sample Input

7.00
3.00
题意:给出个表达式(p,e1,e2)表示(e1+e2)*p+(e1-e2)*(1-p)的结果,求最后的值
思路:递归的处理整个式子,注意细节小数的时候的判断
#include 
   
    
#include 
    
      #include 
     
       #include 
      
        using namespace std; const int maxn = 10005; char str[maxn]; int cur, len; double cal() { double op = 1; while (!(str[cur]=='(' || (str[cur]>='0'&&str[cur]<='9') || str[cur]=='-') && cur < len) cur++; if (str[cur] == '-') { cur++; op = -1; } if (str[cur] == '(') { cur++; double w = 0.1, p = 0; if (str[cur] == '.' || str[cur+1] == '.') { if (str[cur+1] == '.') cur++; for (int i = cur+1; str[i] >= '0' && str[i] <= '9' && str[i]; i++, cur = i) { p = p + (str[i] - '0') * w; w *= 0.1; } } else p = str[cur++] - '0'; double a, b; a = cal(); b = cal(); return (a + b) * p + (a - b) * (1 - p); } else { double p = 0; for (int i = cur; str[i] >= '0' && str[i] <= '9' && str[i]; i++, cur = i) p = p * 10 + str[i] - '0'; return op * p; } } int main() { double p, a, b; while (gets(str) && strcmp(str, "()")) { len = strlen(str); cur = 0; printf("%.2lf\n", cal()); } return 0; }
      
     
    
   


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ Primer 4th 读书笔记(第一部.. 下一篇hdu 3853 LOOPS(期望)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)