• A1060 Are They Equal [string]


    在这里插入图片描述
    题目大意:判断两个数字的科学计数法是否相等
    思路:

    1. 有两种类型 一是0.XXXX而是XXXX.XXXX 分别去0去小数点。
    2. 判断主体和指数是否相等。
    #include<vector>
    #include<iostream>
    #include<algorithm>
    #include<unordered_map>
    #include<set>
    #include<map>
    using namespace std;
    const int N=51;
    int n;
    string deal(string s, int& e)
    {
    	int k = 0;
    	while (s.length() > 0 && s[0] == '0')
    	{
    		s.erase(s.begin());
    	}
    	if (s[0] == '.')
    	{
    		s.erase(s.begin());
    		while (s.length() > 0 && s[0] == '0')
    		{
    			s.erase(s.begin());
    			e--;
    		}
    	}
    	else
    	{
    		while (k < s.length() && s[k] != '.')
    		{
    			k++;
    			e++;
    		}
    		if (k < s.length())
    		{
    			s.erase(s.begin() + k);
    		}
    	}
    	if (s.length() == 0)
    		e = 0;
    	int num = 0;
    	k = 0;
    	string res;
    	while (num < n)
    	{
    		if (k < s.length())
    			res += s[k++];
    		else
    			res += '0';
    		num++;
    	}
    	return res;
    }
    int main()
    {
    	string s1, s2, s3, s4;
    	cin >> n >> s1 >> s2;
    	int e1 = 0, e2 = 0;
    	s3 = deal(s1, e1);
    	s4 = deal(s2, e2);
    	if (s3 == s4 && e1 == e2)
    	{
    		cout << "YES 0." << s3 << "*10^" << e1 << endl;
    	}
    	else
    	{
    		cout << "NO 0." << s3 << "*10^" << e1 << " 0." << s4 << "*10^" << e2 << endl;
    	}
    }
    
    
  • 相关阅读:
    p2394 精度题
    线性筛素数
    poj3468 线段树的懒惰标记
    逆元
    2018 Multi-University Training Contest 2
    2018 Multi-University Training Contest 1
    判断素数遇到的问题
    Mergeable Stack(链表实现栈)
    组合数
    poj2594 机器人寻找宝藏(最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/Hsiung123/p/13812035.html
Copyright © 2020-2023  润新知