1060 Are They Equal (25分)
1060 Are They Equal (25分)
题目

思路
定义结构体
struct fraction{
string f;
int index;
}
把输入的两个数先都转换为科学计数法,统一标准后再做比较,index表示指数
注意点
- 0或者0的各种形式
- 0.1, 0.01等
代码
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<set>
#include<string>
using namespace std;
#define MAXN 101
struct fraction{
string f;
int index;
fraction(char s[], int len){
int pos = -1;
int num = -1;
int i = 0;
for(i=0;s[i]!='\0';i++){
if(num == -1 && s[i] != '0' && s[i] != '.'){
num = i;
}
if(s[i] == '.'){
pos = i;
}
}
if(num == -1){
f.append(len, '0');
index = 0;
return ;
}
if(pos != -1){
if(pos < num){
index = pos - num + 1;
}else{
index = pos - num;
}
}else{
index = i - num;
}
f = s;
if(pos != -1){
f.erase(pos, 1);
if(num > pos){
num--;
}
}
f = f.substr(num, f.length());
if(f.length() < len){
f.append(len-f.length(), '0');
}else{
f = f.substr(0, len);
}
}
};
void print(fraction f, int len) {
printf("0.%s*10^%d", f.f.c_str(), f.index);
}
bool compare(fraction f1, fraction f2, int len){
if(f1.index != f2.index){
return false;
}
if(f1.f != f2.f){
return false;
}
return true;
}
void toString(fraction f) {
printf("f = %s, index = %d \n", f.f.c_str(), f.index);
}
int main() {
int n;
char s1[MAXN], s2[MAXN];
scanf("%d %s %s", &n, s1, s2);
fraction f1(s1, n);
fraction f2(s2, n);
if(compare(f1, f2, n) == true){
printf("YES ");
print(f1, n);
} else{
printf("NO ");
print(f1, n);
printf(" ");
print(f2, n);
}
}
1060 Are They Equal (25分)的更多相关文章
- 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 ...
- 1060 Are They Equal (25 分)
1060 Are They Equal (25 分) If a machine can save only 3 significant digits, the float numbers 1230 ...
- 【PAT甲级】1060 Are They Equal (25 分)(需注意细节的模拟)
题意: 输入一个正整数N(<=100),接着输入两个浮点数(可能包含前导零,对于PAT已经习惯以string输入了,这点未知),在保留N位有效数字的同时判断两个数是否相等,并以科学计数法输出. ...
- 【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 ...
- 1060. Are They Equal (25)
题目如下: If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are consi ...
- 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 ...
- PAT (Advanced Level) 1060. Are They Equal (25)
模拟题.坑点较多. #include<iostream> #include<cstring> #include<cmath> #include<algorit ...
- PAT甲题题解-1060. Are They Equal (25)-字符串处理(科学计数法)
又是一道字符串处理的题目... 题意:给出两个浮点数,询问它们保留n位小数的科学计数法(0.xxx*10^x)是否相等.根据是和否输出相应答案. 思路:先分别将两个浮点数转换成相应的科学计数法的格式1 ...
- A1060 Are They Equal (25 分)
一.技术总结 cnta.cntb用于记录小数点出现的位置下标,初始化为strlen(字符串)长度. q.p用于记录第一个非0(非小数点)出现的下标,可以用于计算次方和方便统计输出的字符串,考虑到前面可 ...
随机推荐
- 【Spring】事务(transactional)之初步理解
一. 场景 有一个定时器,做数据库表数据同步. 把数据库A的表table(DB_A_TABLE)同步到数据库B的表table(DB_B_TABLE). 对于DB_A_TABLE的每行数据要做一定的逻辑 ...
- Python第三方库requests的编码问题
PS:这个解决方法可能很简单,但是这是平时的一些细节问题,所以有必要提醒一下! 首先代码不多,就是通过get方法去获取豆瓣首页信息,如图:但是会报UnicodeEncodeError: 'gbk' c ...
- vue 项目
项目搭建 1. npm install -g @vue/cli 2.vue -h 3.vue create list-demo 4.yarn serve 运行项目 路由 1.yarn add vue- ...
- collection和map集合类知识点总结
collection和map集合类知识点总结 最近在准备java基础知识的总结,发现对于集合类的知识点很多很杂,借鉴网上的帖子,整理如下. 一.定义 集合框架是为表示和操作集合而规定的一种统一的标准的 ...
- ArcMap 发布 ArcGIS Server OGC(WMSServer,MapServer)服务
完整的从ArcMap部署地图到ArcGIS Server 中作为地图服务的过程. 1. 添加图层数据-- 不能添加地图 baseMap 2. 安装ArcGIS Server ,记住登录Manager ...
- 三分钟学会.NET Core Jwt 策略授权认证
一.前言 大家好我又回来了,前几天讲过一个关于Jwt的身份验证最简单的案例,但是功能还是不够强大,不适用于真正的项目,是的,在真正面对复杂而又苛刻的客户中,我们会不知所措,就现在需要将认证授权这一块也 ...
- 本地.local域名访问实现
苹果的 Bonjour 的多址广播域名服务(mDNS) 使用".local "后缀来识别 Bonjour 可访问的设备 比如树莓派可以用用raspberrypi.local去访问非 ...
- ElementUI的el-table的多选的取消选择和筛选的取消所有过滤器之ref冲突问题
写此文的缘由:现如今,网络上,没有同下的解释形式(或者在外网,所以我没找到,或者大佬觉得太简单所以不屑解释).然而,我认为这是对VUE+ElementUI的底层框架的理解深入化问题.(为什么要深入理解 ...
- Longest Ordered Subsequence POJ - 2533 dp 最长上升/不下降 子序列
#include<iostream> using namespace std ; ; int f[N]; int a[N]; int n; int main() { cin>> ...
- Ubuntu系统Apache2部署SSL证书
参考链接: https://help.aliyun.com/document_detail/102450.html?spm=a2c4g.11186623.6.582.17b74c07mBaXWS