题目意思直接,要求将两个数转为科学计数法表示,然后比较是否相同  不过有精度要求

/*
test 6
3 0.00 00.00
test 3
3 0.1 0.001
0.001=0.1*10^-2
pay
前导0
不同格式的0
*/ #include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[105],b[105];
struct num
{
char s[105];
int k;
}x,y;
struct num getn(char a[],int n)
{
int na=strlen(a),i,j=na,k=na,t,flag=0;
struct num x;
memset(x.s,'0',n*sizeof(char));
x.s[n]='\0';
for(i=0;i<na;i++)
{
if(a[i]>'0'&&a[i]<='9'&&!flag)
{
j=i;
flag=1;
}
if(a[i]=='.')k=i;
}
// printf("%d %d\n",j,k);
if(j==na)
{
x.k=0;
}
else
{
t=0;
for(i=j;i<na&&t<n;i++)
if(i!=k)x.s[t++]=a[i];
if(k>j)x.k=k-j;
else
x.k=k-j+1;
}
//printf("%s %d\n",x.s,x.k);
return x; }
void deal(char a[],char b[],int n)
{
x=getn(a,n);
y=getn(b,n);
if(!strcmp(x.s,y.s)&&x.k==y.k)printf("YES 0.%s*10^%d\n",x.s,x.k);
else
printf("NO 0.%s*10^%d 0.%s*10^%d\n",x.s,x.k,y.s,y.k);
}
int main()
{ int na,nb,i,n,t,flag;
while(scanf("%d%s%s",&n,a,b)!=EOF)
{
deal(a,b,n);
}
return 0;
}

pat 1060. Are They Equal (25)的更多相关文章

  1. 【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 ...

  2. 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 ...

  3. 1060 Are They Equal (25 分)

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

  4. 1060 Are They Equal (25分)

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

  5. PAT 1060 Are They Equal[难][科学记数法]

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

  6. PAT 1060 爱丁顿数(25)(STL-multiset+思路)

    1060 爱丁顿数(25 分) 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱 ...

  7. 【PAT甲级】1060 Are They Equal (25 分)(需注意细节的模拟)

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

  8. PAT (Advanced Level) 1060. Are They Equal (25)

    模拟题.坑点较多. #include<iostream> #include<cstring> #include<cmath> #include<algorit ...

  9. PAT甲题题解-1060. Are They Equal (25)-字符串处理(科学计数法)

    又是一道字符串处理的题目... 题意:给出两个浮点数,询问它们保留n位小数的科学计数法(0.xxx*10^x)是否相等.根据是和否输出相应答案. 思路:先分别将两个浮点数转换成相应的科学计数法的格式1 ...

随机推荐

  1. mysql更新密码为空

    1.进入命令行 mysql -u root -p 'oldpassword'; 2 修改root用户的密码:mysql> update mysql.user set password=PASSW ...

  2. CentOS7下安装配置vncserver

    之前试了xmanager,不过好像和在centos6有很大不同,居然没成功,然后找到了vncserver,试了下,成了 参考:http://blog.csdn.net/jiangliqing1234/ ...

  3. 『重构--改善既有代码的设计』读书笔记----Self Encapsulate Field

    如果你直接访问一个字段,你就会和这个字段直接的耦合关系变得笨拙.也就是说当这个字段权限更改,或者名称更改之后你的客户端代码都需要做相应的改变,此时你可以为这个字段建立设值和取值函数并且只以这些函数来访 ...

  4. .Net用js实现aspx页面删除TextBox输入框的前后空格

    去掉TextBox输入框两头的前后空格:onblur="this.value=this.value.replace(/^\s+|\s+$/g,'');" str为要去除空格的字符串 ...

  5. 利用sfntly的sfnttool.jar提取中文字体

    雨忆博客中提到了sfntly(具体介绍可以看:https://code.google.com/p/sfntly/),利用其中sfnttool.jar就可以提取只包含指定字符的字体,如果想在页面中通过@ ...

  6. Win7系统下完全删除Mysql

    今天不知为什么Mysql服务器突然连接不上,于是胡乱折腾了一番,导致最后不得不重新安装Mysql.安装不成功,服务器起不来,就是最后那步的时候服务器启动不了,这是因为Mysql在卸载的时候没有彻底卸载 ...

  7. Android 即时语音聊天工具 开发

    使用融云SDK 1. 功能需求分析 1.1 核心功能需求: * 即时通讯 * 文字聊天 * 语音聊天 1.2 辅助功能需求: * 注册.登录 * 好友添加功能 * 好友关系管理 2. 融云即时通讯平台 ...

  8. Bootstrap 和 LESS

    Bootstrap 简介 什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的 ...

  9. 关于android:configChanges的属性

    一般在AndroidManifest.xml文件中都没有使用到android:configChanges="keyboardHidden|orientation"配置,当然还是很有 ...

  10. 高级停靠(Dock)技术的实现

    高级停靠(Dock)技术的实现 介绍 所谓停靠就是可以用鼠标拖动窗体或者控件,并将其从一个父窗体移出或者移动到另一个父窗体上,可以按水平,垂直方向整齐排列, 并且可以停靠在分页控制组件上.下面的示意图 ...