A==?B(A,B超级大)

#include <iostream>
#include <string.h>
#include <cstring>
using namespace std;
struct zhennan
{
char str[100000];
char str0[100000];
void cc()
{
int n,i,k1,k2,f,v;
n=strlen(str);
f=0;
for(i=0,k1=0;i<n;i++)
{
if(str[i]=='0'&&f==0) {continue;}
if(str[i]!='0') {f++;}
str0[k1]=str[i];
k1++;
}

str0[k1]='\0';
v=0;
for(i=0;i<k1;i++)
{
if(str0[i]!='.') {v=1;}
else {v=0;break;}
}
if(v==0)
{
f=0;
for(i=k1-1,k2=0;i>=0;i--)
{
if(str0[i]=='0'&&f==0) {continue;}
if(str0[i]!='0') {f++;}
str[k2]=str0[i];
k2++;
}
str[k2]='\0';
if(str[0]=='.')
{
for(i=0;i<k2-1;i++)
str[i]=str[i+1];
}
str[k2-1]='\0';
}
if(v==1)
{
for(i=k1-1,k2=0;i>=0;i--,k2++)
str[k2]=str0[i];
str[k2]='\0';
}
}
};
zhennan a,b;
int main()
{
long long i,j,m;
while(cin>>a.str>>b.str)
{
if(a.str[0]=='-')
{
m=strlen(a.str);
for(i=0,j=1;j<m;i++,j++)
a.str[i]=a.str[j];
a.str[j-1]='\0';
a.cc();
if(strlen(a.str)==0) {a.str[0]='0';a.str[1]='\0';}
else {
m=strlen(a.str);
a.str[m]='-';
a.str[m+1]='\0';
}
}
else a.cc();
if(a.str[0]=='\0') {a.str[0]='0';a.str[1]='\0';}
if(b.str[0]=='-')
{
m=strlen(b.str);
for(i=0,j=1;j<m;i++,j++)
b.str[i]=b.str[j];
b.str[j-1]='\0';
b.cc();
if(strlen(b.str)==0) {b.str[0]='0';b.str[1]='\0';}
else
{
m=strlen(b.str);
b.str[m]='-';
b.str[m+1]='\0';
}
}
else b.cc();
if(b.str[0]=='\0') {b.str[0]='0';b.str[1]='\0';}
if(strcmp(a.str,b.str)==0) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}

转载于:https://www.cnblogs.com/NYNU-ACM/p/4658281.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值