最近又学习了STL中map和queue以及与它们相关的函数,同时复习了string,set和vector,并写了写上次没有做出来的题目。
题目如下:
代码如下:
#include<iostream>
#include<string>
using namespace std;
int n;
string pd(string a,int &b)
{
int i=0;
for(; a[0]=='0';)
a.erase(a.begin());
if(a[0]=='.')
{
a.erase(a.begin());
for(; a[0]=='0';)
{
a.erase(a.begin());
b--;
}
}
else
{
for(; i<a.size()&&a[i]!='.'; i++)
b++;
if(i<a.size())
a.erase(a.begin()+i);
}
if(a.size()==0)
a='0';
for(int j=0; j<n; j++)
a+='0';
a.erase(a.begin()+n,a.end());
return a;
}
int main()
{
string a,b,e,f;
int c=0,d=0;
cin>>n>>a>>b;
e=pd(a,c);
f=pd(b,d);
if(e==f&&c==d)
cout<<"YES 0."<<e<<"*10^"<<c;
else cout<<"NO 0."<<e<<"*10^"<<c<<" "<<"0."<<f<<"*10^"<<d;
}
学好编程最重要的还是思维方法,多做题锻炼思维才能使自己的水平提高。