本文主要是介绍ccsu 1435 A和B,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
就是比较两个大数是否相等 ,要注意前导0,后置0,正负号,小数点。#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstdlib>
using namespace std;
int main()
{char a[100000],b[100000];int flag1,flag2,tmp,tmp1,tmp3,tmp4,mm;bool tmp2;bool s1,s2,s3,s4;while(~scanf("%s%s",a,b)){tmp2=false;s1=s2=s3=s4=false;mm=0;tmp=strlen(a);tmp1=strlen(b);for(int i=0;i<tmp;i++){if(a[0]=='-')s1=true;if(!mm&&a[i]!='0'&&a[i]!='-'&&a[i]!='+'){flag1 = i;mm=1;}if(a[i] == '.')s3=true;if(i == tmp-1&&!mm)flag1=i;}mm=0;for(int i=0;i<tmp1;i++){if(b[0]== '-')s2=true;if(!mm&&b[i]!='0'&&b[i]!='-'&&b[i]!='+'){flag2 = i;mm=1;}if(b[i] == '.')s4=true;if(i == tmp1-1&&!mm)flag2=i;}if(s3){for(int i=tmp-1;i>=0;i--){if(a[i] != '0'&&a[i]!='.'){tmp3=i;break;}}}if(s4){for(int i=tmp1-1;i>=0;i--){if(b[i] != '0'&&b[i]!='.'){tmp4=i;break;}}}if((s1&&s2)||(!s1&&!s2)){if(s3)tmp=tmp3+1;if(s4)tmp1=tmp4+1;while(flag1<tmp){if(a[flag1] != b[flag2])break;if(a[flag1] == b[flag2]){flag1++,flag2++;}if(flag1 >= tmp&&flag2>=tmp1){tmp2=true;break;}}}else if((!s1&&s2)||(!s2&&s1)){if(a[flag1]=='0'&&b[flag2] == '0')tmp2 =true;}if(tmp2)printf("Yes\n");elseprintf("No\n");}
}
这篇关于ccsu 1435 A和B的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!