sdnu oj 1301
发布日期:2021-05-06 17:49:02 浏览次数:18 分类:技术文章

本文共 2786 字,大约阅读时间需要 9 分钟。

水一篇oj题解

emmm 就模拟
就不断的分类讨论,hhh

#include
#define endl '\n'using namespace std;const int Max = 109;char a[Max],b[Max];int main(){ while(~scanf("%s %s",a,b)) { int x1,x2; bool f1=0,f2=0; for(int i=0;i
='1'&&a[i]<='9') { f1=1;break; } for(int i=0;i
='1'&&b[i]<='9') { f2=1;break; } if(f1!=1&&f2!=1) cout << "yes\n"; // 0 和 0 else if(f1!=1||f2!=1) cout << "no\n";// 一个是0 一个不是0 else// 俩都不是0 { if(a[0]=='-'&&b[0]!='-'||a[0]!='-'&&b[0]=='0') cout << "no\n";// 排除异号 else // 一定同号 { bool f1 = 0, f2 = 0; for(int i = 0; i < strlen(a); ++i) { if(a[i] == '.') f1 = 1; else if(a[i] >= '1' && a[i] <= '9' && f1){ f2=1;break; } } bool f3 = 0, f4 = 0; for(int i = 0; i < strlen(b); ++i) { if(b[i] == '.') f3 = 1; else if(b[i]>='1' && b[i] <= '9' && f3) { f4 = 1; break; } } if(f2 + f4 == 1) cout << "no\n";// 一个小数,一个整数 else if(!f2 && !f4) // 俩整数 { int i , j; i = j = 0; bool f = 1; while(a[i] == '-' || a[i] == '0') i++; while(b[j] == '-' || b[j] == '0') j++; for(; i < strlen(a) && j < strlen(b); ++i, ++j) { if(a[i] != b[j]){ f = 0;break; } } if(f) cout << "yes\n"; else cout << "no\n"; } else // 俩小数 { int i , j; i = j = 0; bool f = 1; while(a[i] == '-' || a[i] == '0') i++; while(b[j] == '-' || b[j] == '0') j++; for(; a[i] != '.' && b[j] != '.'; ++i, ++j) { if(a[i] != b[j]){ f = 0;break; } } // 目前整数部分相同了 i++,j++; int x = strlen(a) - 1, y = strlen(b) - 1; while(a[x] == '0') --x; while(b[y] == '0') --y;// 把后导0删去 bool ff = 1; for(; i <= x && j <= y; ++i, ++j) { if(a[i] != b[j]) { ff = 0;break; } } if(f && ff) cout << "yes\n"; else cout << "no\n"; } } } } return 0;}
上一篇:并查集 + map (集合里元素的个数)
下一篇:拓扑排序

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年03月24日 08时37分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章