[Water]Hdu 2054 A == B ?

This problem is just like java's BigInteger:

#include <iostream>

#include <string>

using namespace std;



string format(string str){

	bool zheng=true;

	int ppos=str.find('.');

	int len=str.length();

	string s1,s2;



	if(ppos!=-1){

		int ii;

		for(ii=len-1;ii>ppos;ii--){

			if(str[ii]!='0')break;

		}

		s2=str.substr(ppos,ii-ppos+1);

	}

	else ppos=len;



	int i=0;

	if(str[i]=='-'){

		zheng=false;

		i++;

	}

	for(;i<ppos;i++){

		if(str[i]!='0' ){

			s1=str.substr(i,ppos-i);

			break;

		}

	}

	if(s1=="")s1="0";

	if(s2==".")s2="";

	if(!zheng)s1="-"+s1;

	if(s1=="-0" && s2=="")s1="0";

	//cout<<"s1="<<s1<<"  s2="<<s2<<endl;

	return s1+s2;

}



int main(){

	string a,b;

	/*while(cin>>a){

		cout<<format(a)<<endl;

	}*/

	while(cin>>a>>b){

		//cout<<a<<"   "<<b<<endl;

		a=format(a);

		b=format(b);

		//cout<<"   "<<a<<"   "<<b<<"    ";

		if(a==b)cout<<"YES"<<endl;

		else cout<<"NO"<<endl;

	}

}

  

你可能感兴趣的:(water)