1 条题解
-
0
考虑到所有的特殊情况即可。
#include <bits/stdc++.h> using namespace std; void go(bool h) { if(h) puts("Yes"); else puts("No"); exit(0); } int main() { string s; cin>>s; bool t=false; if(s[0]=='-') { t=true; s.erase(0,1); } int n=s.size(); s=' '+s; if(n==0) go(0); if(n==1) { if(s[1]>='1'&&s[1]<='9') go(1); if(s[1]=='0'&&!t) go(1); go(0); } if(s[1]=='0'&&s[2]=='x') { if(n==2) go(0); if(s[3]=='0') { if(n==3&&!t) go(1); go(0); } for(int i=3;i<=n;i++) if(s[i]<'0'||s[i]>'9'&&s[i]<'a'||s[i]>'f') go(0); go(1); } if(s[1]=='0'&&s[2]=='.') { if(n==2) go(0); for(int i=3;i<=n;i++) if(s[i]<'0'||s[i]>'9') go(0); if(!t) go(1); for(int i=3;i<=n;i++) if(s[i]!='0') go(1); go(0); } if(s[1]=='0') { if(s[2]=='0') { if(n==2&&!t) go(1); go(0); } for(int i=3;i<=n;i++) if(s[i]<'0'||s[i]>'7') go(0); go(1); } if(s[1]=='.') go(0); if(s[n]=='.') go(0); int e=0; for(int i=1;i<=n;i++) if(s[i]=='.') e++; if(e>1) go(0); for(int i=1;i<=n;i++) if((s[i]<'0'||s[i]>'9')&&s[i]!='.') go(0); go(1); return 0; }
- 1
信息
- ID
- 60
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 14
- 已通过
- 2
- 上传者