https://pintia.cn/problem-sets/994805342720868352/problems/994805413520719872
细节很多,需要注意一下几个情况:

  • 12345000 全是整数的情况
  • 000012313 全是整数有前导零的情况
  • 123.456 既有整数,又有小数的情况
  • 0.00001323 只有小数的情况
  • 0 这种情况
  • 0.00000 这种情况
#include<bits/stdc++.h>
using namespace std;
int n,len1,len2;
string a,b,s1,s2;
int get(string& s,string& ans)
{if(s.find('.')==-1)//整数{while(s.size()>1&&s[0]=='0') s=s.substr(1);for(int i=0;i<s.size();i++){if(s[i]!='.') ans+=s[i];else break;if(ans.size()==n) break;}while(ans.size()<n) ans="0"+ans;if(s[0]=='0') return 0;//说明是0return s.size();}else{int k=s.find('.');bool flag=0;for(int i=0;i<k;i++) if(s[i]!='0') flag=1;//说明" .  "前边有数if(flag)//前整,后小数{while(s[0]=='0') s=s.substr(1);for(int i=0;i<s.size();i++){if(s[i]!='.') ans+=s[i];if(ans.size()==n) break;}while(ans.size()<n) ans=ans+"0";return s.find('.');}else//全是小数{s=s.substr(s.find('.')-1);int cnt=2;while(s[cnt]=='0'&&cnt<s.size()) cnt++;for(int i=cnt;i<s.size();i++){ans+=s[i];if(ans.size()==n) break;}while(ans.size()<n) ans=ans+"0";if(cnt==s.size()) return 0;///0.0000000这种情况return -(cnt-2);}}
}
int main(void)
{cin>>n>>a>>b;len1=get(a,s1);len2=get(b,s2);if(s1==s2&&len1==len2) printf("YES 0.%s*10^%d",s1.c_str(),len1);else printf("NO 0.%s*10^%d 0.%s*10^%d",s1.c_str(),len1,s2.c_str(),len2);return 0;
}

1060 Are They Equal (25 分)【难度: 一般 / 知识点: 模拟 字符串处理】相关推荐

  1. PAT 1060 Are They Equal (25 分)

    1060 Are They Equal (25 分) If a machine can save only 3 significant digits, the float numbers 12300 ...

  2. 【科学计数法模板讲解】1060 Are They Equal (25 分)

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 If a machine can save only 3 significant digits, the float number ...

  3. 13. 找出数组中重复的数字【难度: 简单 / 知识点: 模拟】

    13. 找出数组中重复的数字[难度: 简单 / 知识点: 模拟] 方法一: map 计数 时间复杂度O(nlongn) 空间复杂度多了一个二叉树 class Solution {public:int ...

  4. 【CCCC】L2-015 互评成绩 (25分),,简单模拟,水题,动态数组排序

    problem L2-015 互评成绩 (25分) 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生 ...

  5. pat 1060. Are They Equal (25)

    题目意思直接,要求将两个数转为科学计数法表示,然后比较是否相同  不过有精度要求 /* test 6 3 0.00 00.00 test 3 3 0.1 0.001 0.001=0.1*10^-2 p ...

  6. 1142 Maximal Clique (25 分)【难度: 一般 / 知识点: 模拟】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805343979159552 数据范围很小,直接按照题意模拟即可. #in ...

  7. 1122 Hamiltonian Cycle (25 分)【难度: 一般 / 知识点: 模拟 哈密顿回路】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805351814119424 本题考察的就是哈密顿回路 只能走n+1步 有 ...

  8. 1109 Group Photo (25 分)【难度: 一般 / 知识点: 模拟 排序】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805360043343872 乙级的原题. #include<bit ...

  9. 1105 Spiral Matrix (25 分)【难度: 一般 / 知识点: 模拟】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805363117768704 又是乙级的原题. #include<b ...

最新文章

  1. c语言将字母与数字分开存放,2017年计算机二级《C语言》考前提分试题及答案9...
  2. .Net转Java自学之路—基础巩固篇一
  3. 【LorMe云讲堂】梁玉婷:农田土壤微生物共存与功能识别调控
  4. 太难了!产品经理想拿高薪
  5. 科大讯飞营收破百亿,员工涨薪27%,羡慕这个AI“老大哥”​了!
  6. android surfaceview 技术,Android中SurfaceView的理解和使用
  7. linux 移动一行到指定行,linux – 移动行以跟随文件中的另一行
  8. 剑指offer——10.斐波那契数列
  9. 大厂螺丝钉还是开源极客?开源新手该怎么选?
  10. Cocos2dx 下对sqlite3 的简单封装
  11. cygwin中如何使用gcc
  12. matlab 系统 h10,Thinkbook、ThinkPad出厂带H10混合固态的机器重装系统启用傲腾的方法...
  13. 车牌自动识别在智能交通系统中的应用及前景分析
  14. thymeleaf参考手册
  15. autocad r14 win7补丁_AutoCAD R14几个实用补丁
  16. 怎么查看电脑最大支持扩展内存
  17. jzoj5442. 【NOIP2017提高A组冲刺11.1】荒诞
  18. 黑猴子的家:Minimal Install VS Server with GUI VS GNOME Desktop
  19. 支持3d android 模拟器,3D太空模拟器
  20. 求1到100之间所有能被3整除的整数的和

热门文章

  1. ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on yo
  2. js邮箱正则表达式的使用
  3. FCKeditor 2.6.4.1 初始化值不能显示中文问题
  4. dedecms5.7 联动类型无法显示
  5. 蓝牙4.0BLE抓包(二) – 广播包解析
  6. 在IAR下如何查看工程的堆栈(STM32)
  7. STM32F103C8T6学习笔记_时钟
  8. STM32使用J-LINK下载HEX文件
  9. c matlab 混合编程 调试,64位MATLAB和C混合编程以及联合调试
  10. mysql从入门到转行图片_数据小白转行之路-MYSQL(二)