PAT-A1060. Are They Equal (25)
来源:互联网 发布:手机知乎怎么发文章 编辑:程序博客网 时间:2024/06/07 15:10
正数部分为0,不为0分开处理。还要处理前导0。
用string,注意erase的应用。
#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <map>#include <string> #include <algorithm>using namespace std;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;k = 0;int num = 0;string res;while (num < n){if (k < s.length())res += s[k++];elseres += '0';num++; }return res;}int main(){//freopen("in.txt", "r", stdin);//freopen("out.txt", "w", stdout);int e1 = 0, e2 = 0;string s1, s2, s3, s4;cin >> n >> s1 >> s2;s3 = deal(s1, e1);s4 = deal(s2, e2);if (s3 == s4 && e1 == e2){printf("YES 0.%s*10^%d", s3.c_str(), e1);}else{printf("NO");printf(" 0.%s*10^%d", s3.c_str(), e1);printf(" 0.%s*10^%d", s4.c_str(), e2);}return 0;}
0 0
- PAT-A1060. Are They Equal (25)
- PAT A1060. Are They Equal (25)
- PAT A1060 are they equal (25)
- pat-a1060. Are They Equal (25)
- PAT [A1060]-Are They Equal
- A1060.Are They Equal
- PAT A1060 Are They Equal 我的思路不太好,25分得了19分。其实还是有很大纰漏的!
- 1060. Are They Equal (25)-PAT
- pat 1060. Are They Equal (25)
- PAT A 1060. Are They Equal (25)
- PAT 1060. Are They Equal (25)
- PAT 1060. Are They Equal (25)
- PAT 1060. Are They Equal (25)
- PAT 1020Are They Equal (25)
- PAT(A) - 1060. Are They Equal (25)
- 【PAT甲级】1060. Are They Equal (25)
- 1060. Are They Equal (25)PAT甲级
- PAT甲级1060. Are They Equal (25)
- Java 并发 同步方案总结
- c++工程师笔试常见题目总结
- 管理系统中计算机应用的课件
- 快排 和 堆排序算法的细节代码分析
- php接收上传文件
- PAT-A1060. Are They Equal (25)
- Fragment
- C语言全局变量和静态变量
- C语言有哪些鲜为人知的特性?及C语言未定义行为一览
- (翻译加笔记)Structure Preserving Object Tracking
- PAT-A1071. Speech Patterns (25)
- HashMap LinkedHashMap TreeMap的区别
- 基于spring的可扩展性
- 关于Ubuntu安装后切换root权限的问题