Day 37 算法笔记之STL 6.3 string的常见用法详解

#include<iostream>
#include<string>
using namespace std;

int n;
string deal(string str,int &e){
	
	while(str.length()!=0&&str[0]=='0'){
		str.erase(str.begin());
	}
	
	if(str[0]=='.'){
		str.erase(str.begin());
		while(str.length()>0&&str[0]=='0'){
			str.erase(str.begin());
			e--;
		}
	}else{
		int k=0;
		while(k<str.length()&&str[k]!='.'){
			k++;
			e++;
		}
		if(k<str.length()){
			str.erase(k);
		}
	}
	
	if(str.length()==0){
		e=0;
	}
	
	int num=0;
	string final;
	
	
	
	while(num<n){
		if(num<str.length()){
			final+=str[num++];
		}
		else{
			final+='0';
			num++;
		}
	}
	return final;
}

int main(){
	
	string str1,str2;
	cin>>n>>str1>>str2;
	int e1=0,e2=0;
	string s1=deal(str1,e1);
	string s2=deal(str2,e2);
	if(s1==s2&&e1==e2){
		cout<<"YES 0."<<s1<<"*10^"<<e1<<endl;
	}else{
		cout<<"NO 0."<<s1<<"*10^"<<e1<<" 0."<<s2<<"*10^"<<e2<<endl;
	}

	return 0;
}

おすすめ

転載: blog.csdn.net/aixiaoxiao13/article/details/121258267
おすすめ