【NYOJ】[1092]数字分隔(二)
来源:互联网 发布:那年呐服饰淘宝代理可信吗 编辑:程序博客网 时间:2024/04/30 15:50
需要考虑的情况挺多的……
比如四舍五入进位、前导0、负数……
写着写着自己就乱了
耽误了好多时间
迷迷糊糊的写出来的
以后有机会再来重新写一遍吧
#include<stdio.h>#include<string.h>int main() {// freopen("input.txt","r",stdin);// freopen("output.txt","w",stdout); char s[120]; while(scanf("%s",s)!=EOF) { int l=strlen(s); bool flagf=false; if(s[0]=='-') { flagf=true; for(int i=0; i<l-1; i++) s[i]=s[i+1]; l--; } if(flagf) printf("("); int ti=l; for(int i=0; i<l; i++) if(s[i]=='.') ti=i; int t=0; while(s[t]=='0') { if(s[t+1]!='.') t++; else break; } if(t) { l-=t; ti-=t; for(int i=0; i<l; i++) s[i]=s[i+t]; } if(l<1) { printf("0.00"); if(flagf) printf(")"); printf("\n"); continue; } bool flag=false; if(ti+3<l) { if(s[ti+3]-'0'>4) { s[ti+2]++; int t=ti+2; while(s[t]-'0'>9) { s[t]-=10; if(t>0) { if(s[t-1]=='.') { s[t-2]++; t-=2; } else { s[t-1]++; t--; } } else flag=true; } } } if(flag) { for(int i=l; i>0; i--) s[i]=s[i-1]; s[0]='1'; ti++; l++; } for(int i=0; i<ti%3; i++) { printf("%c",s[i]); } if(ti>2) { if(ti%3) printf(","); int k=0; for(int i=ti%3; i<ti; i++) { k++; printf("%c",s[i]); if(k==3&&i!=ti-1) { printf(","); k=0; } } } printf("."); if(ti+2<l) printf("%c%c",s[ti+1],s[ti+2]); else if(ti+1<l) printf("%c0",s[ti+1]); else printf("00"); if(flagf) printf(")"); printf("\n"); } return 0;}
题目地址:【NYOJ】[1092]数字分隔(二)
0 0
- NYOJ 1092-数字分隔(二)-sdfgdbvc
- NYOJ 1092 数字分隔(二)
- 【NYOJ】[1092]数字分隔(二)
- NYOJ 1092 数字分隔(二)
- NYOJ 1092:数字分隔(二)【JAVA 】
- NYOJ 数字分隔(二)
- nyoj.1092 数字分隔(二)【水题】 2015/03/14
- 数字分隔(二)
- 数字分隔(二)
- 数字分隔(二)
- 数字分隔(二)
- 数字分隔(二)
- 数字分隔(二)
- NYIST 1092 数字分隔(二)
- 南阳oj 1092 数字分隔(二)
- 南阳1092-数字分隔(二)
- NYOJ1092 数字分隔(二)
- 68.数字分隔(二)
- 折线图的绘制
- C++ STL中Map的按Key排序和按Value排序
- 配置集群各机器间免密码登陆(开启ssh互信)
- 菜单
- codeforces 660B. Seating On Bus
- 【NYOJ】[1092]数字分隔(二)
- Android开发学习总结(一)——搭建最新版本的Android开发环境
- 软件开发公司如何带新人?
- A + B Problem
- 【OpenCV】OpenCV3的第五天——imgproc组件之图像处理
- 4——Service Discovery in a Microservices Architecture
- Linux 内核延时函数
- 【学习笔记】3D图形核心基础精炼版-9:stage3D实战-图片纹理
- HDOJ 1195 Open the Lock