题意:

输入一个正整数N(<=100),接着输入两个浮点数(可能包含前导零,对于PAT已经习惯以string输入了,这点未知),在保留N位有效数字的同时判断两个数是否相等,并以科学计数法输出。

trick:

测试点3含有有效数字在小数点以后的数据,此时指数应该是小数点位置减有效数字位置再加上1。

AAAAAccepted code:

 #define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
string a,b;
int ans_a[],ans_b[];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
cin>>a>>b;
int cnt=;
int posa=a.size();
int posb=b.size();
int staa=a.size();
int stab=b.size();
for(int i=;i<a.size();++i)if(a[i]=='.'){
posa=i;
break;
}
for(int i=;i<b.size();++i)if(b[i]=='.'){
posb=i;
break;
}
for(int i=;i<a.size();++i)if(a[i]!=''&&a[i]!='.'){
staa=i;
break;
}
for(int i=;i<b.size();++i)if(b[i]!=''&&b[i]!='.'){
stab=i;
break;
}
for(int i=staa;i<a.size();++i){
if(a[i]=='.')
continue;
if(cnt<n)
ans_a[++cnt]=a[i]-'';
}
for(int i=cnt+;i<=n;++i)
ans_a[i]=;
int tot=;
for(int i=stab;i<b.size();++i){
if(b[i]=='.')
continue;
if(tot<n)
ans_b[++tot]=b[i]-'';
}
for(int i=tot+;i<=n;++i)
ans_b[i]=;
int flag=;
for(int i=;i<=n;++i)if(ans_a[i]!=ans_b[i])
flag=;
if(!flag&&posa-staa==posb-stab||staa==a.size()&&stab==b.size())
cout<<"YES ";
else
cout<<"NO ";
cout<<"0.";
for(int i=;i<=n;++i)
cout<<ans_a[i];
int ans=;
if(posa-staa<)
ans=posa-staa+;
else
ans=posa-staa;
if(staa==a.size())
ans=;
cout<<"*10^"<<ans;
if((flag||posa-staa!=posb-stab)&&(staa!=a.size()||stab!=b.size())){
cout<<" 0.";
for(int i=;i<=n;++i)
cout<<ans_b[i];
int anss=;
if(posa-staa<)
anss=posb-stab+;
else
anss=posb-stab;
if(stab==b.size())
anss=;
cout<<"*10^"<<anss;
}
return ;
}

【PAT甲级】1060 Are They Equal (25 分)(需注意细节的模拟)的更多相关文章

  1. PAT 甲级 1060 Are They Equal (25 分)(科学计数法,接连做了2天,考虑要全面,坑点多,真麻烦)

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

  2. 1060 Are They Equal (25 分)

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

  3. 1060 Are They Equal (25分)

    1060 Are They Equal (25分) 题目 思路 定义结构体 struct fraction{ string f; int index; } 把输入的两个数先都转换为科学计数法,统一标准 ...

  4. 【PAT】1060 Are They Equal (25)(25 分)

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

  5. PAT 甲级 1060 Are They Equal

    1060. Are They Equal (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue If a ma ...

  6. PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)

    1040 Longest Symmetric String (25 分)   Given a string, you are supposed to output the length of the ...

  7. PAT 甲级 1083 List Grades (25 分)

    1083 List Grades (25 分) Given a list of N student records with name, ID and grade. You are supposed ...

  8. PAT甲级——1130 Infix Expression (25 分)

    1130 Infix Expression (25 分)(找规律.中序遍历) 我是先在CSDN上面发表的这篇文章https://blog.csdn.net/weixin_44385565/articl ...

  9. PAT 甲级 1074 Reversing Linked List (25 分)(链表部分逆置,结合使用双端队列和栈,其实使用vector更简单呐)

    1074 Reversing Linked List (25 分)   Given a constant K and a singly linked list L, you are supposed ...

  10. PAT 甲级 1086 Tree Traversals Again (25分)(先序中序链表建树,求后序)***重点复习

    1086 Tree Traversals Again (25分)   An inorder binary tree traversal can be implemented in a non-recu ...

随机推荐

  1. 传奇装备锻造升级UPGRADEITEMEX功能详解

    装备升级功能可以指定升级物品及属性,按指定机率得到结果.需要升级的装备物品必须放在身上.命令格式UPGRADEITEMEX 物品位置(0-12) 属性位置(0-14) 成功机率(0-100) 点数机率 ...

  2. Python偶斐波那契数

    斐波那契数列中的每一项都是前两项的和.由1和2开始生成的斐波那契数列前10项为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … 考虑该斐波那契数列中不超过四百万的项,求其中为 ...

  3. spring boot配置druid数据连接池

    Druid是阿里巴巴开源项目中一个数据库连接池. Druid是一个jdbc组合,包含三个部分, 1.DruidDriver代理Driver,能够提供基于Filter-Chain模式得插件体系2.Dru ...

  4. c语言用raw socket进行抓包

    https://www.cnblogs.com/MrYuan/p/5215923.html https://blog.csdn.net/qq_41787205/article/details/8669 ...

  5. Bash Game hdu 1846

    (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者 ...

  6. 利用数据库管理工具(Navicat)导出数据到Excel表中

    如果只是想把数据库表中数据简单导出来,可以利用数据库管理工具中的工具 1.先查询 2.在查询出结果中全选 3.导出向导 4.选择Excel 5.选择导出地址并命名

  7. Python 多任务(进程) day1(2)

    进程和线程的简单区别: 功能:进程:能够完成多任务,比如 在一台电脑上能够运行多个QQ一份资源有一个执行的剪头,有多份资源就可以执行多个语句线程:能够完成多任务,比如 在一个QQ中的多个聊天窗口一份资 ...

  8. 解决springboot 出现异常: java.net.BindException: Address already in use: bind

    解决springboot 出现异常: java.net.BindException: Address already in use: bind 这是引文在启动springboot 的时候,没有关闭端口 ...

  9. web应用程序上传文件 超过了最大请求长度

    具体问题如下图 具体问题描述:在web应用程序中,上传了200M的文件,出现了如上图的问题,上传较小文件的时候,没有任何的问题.但是,测试的能力,不容小觑,真真的会测试的很全面.测试到了这个问题,好吧 ...

  10. python 读写函数

    1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...