ZOJ 2476 Total Amount (字符串处理)
来源:互联网 发布:passport视频软件 编辑:程序博客网 时间:2024/05/01 08:44
题意:
比较简单的题目,就是把给定格式的数字加起来,再按规定格式输出,想想感觉很简单,写起来还是不是很顺,wa了5次,能注意的点都注意了,重新写了一遍才过的。现在总结以下几点易错点:
1.像小于10和小于100的需要特判。
2.不要用double解,精度不能保证,最后处理也烦,建议直接把数字读出来,虽说范围是int内,但不知道数据会不会坑,最好用long long。
3.处理','的时候,要注意总长度减去小数点后两位后刚好能整除3的情况,要注意这种情况下最前面不能带有','。
总结:虽说是简单题,但是wa了这么多次实在是太不应该了,比赛的时候,就跪了,还是要加强手感呀,调试的时候可以把一些中间量输出,调试会更快。
下面贴下代码:
#include <iostream>#include <string>#include <algorithm>using namespace std;long long int StringToInt(string s){long long int res=0,flag=1;for(int i=s.length()-1;i>=0;i--){res+=flag*(s[i]-'0');flag*=10;}return res;}string IntToString (long long int x){string res="";if(x==0){ res+='0'; return res;}while(x){res+=(x%10+'0');x/=10;}reverse(res.begin(),res.end());return res;}int main(){int n;long long int ans=0;string s,ss,sss;while(cin>>n&&n){ans=0;for(int i=0;i<n;i++){ cin>>s; ss=""; for(int j=1;j<s.length();j++) { if(isdigit(s[j])) ss+=s[j]; } ans+=StringToInt(ss);}sss=IntToString(ans);cout<<'$';if(ans<10)cout<<"0.0"<<ans<<endl;else if(ans<100)cout<<"0."<<ans<<endl;else{int x=(sss.length()-2)%3;int y=(sss.length()-2)/3;int p=0;for(;p<x;p++){cout<<sss[p];}for(int j=0;j<y;j++){if(x)cout<<',';else x=1;cout<<sss[p+j*3]<<sss[p+j*3+1]<<sss[p+j*3+2];}cout<<"."<<sss[sss.length()-2]<<sss[sss.length()-1]<<endl;}}return 0;}
0 0
- ZOJ 2476 Total Amount (字符串处理)
- ZOJ 2476 Total Amount 字符串
- zoj 2476 Total Amount
- zoj 2476 Total Amount
- ZOJ 2476 Total Amount
- Total Amount zoj 2476
- ZOJ 2476 Total Amount
- zoj 2476 Total Amount
- zoj 2476 Total Amount
- zoj 2476 Total Amount(水~)
- B-Total Amount (ZOJ 2476)
- zoj 2476 Total Amount(模拟题,细节处理特别多)
- ZOJ Problem Set - 2476 Total Amount
- ZOJ 2476 Total Amount A的好辛苦
- zoj_2476 Total Amount
- ZOJ 2478 Encoding (字符串处理)
- 字符串的处理(模拟) ZOJ Problem Set - 1099 HTML
- ZOJ 1151 Word Reversal反转单词 (string字符串处理)
- Windows API的概念
- 纯虚函数与虚基类
- 第一视频网-linux视频教程
- STL stack adaptor demo
- hdu 5003 水题
- ZOJ 2476 Total Amount (字符串处理)
- AS3转到了cocos2d-x
- 第一个真正的Windows程序
- Python Generators(生成器)——yield关键字
- 编程练习五
- 测试计划的目的是什么?如何做好测试计划?
- 星火视频网-linux arm视频教程
- linux初学者12个命令
- 在项目SSH整合时,启动测试时报的警告!