pat 1060 比较科学计数法
trick:
1、前导0
如:000001,000.000001
2、出现0时也要按照科学计数法输出
e.g. 4 00000.00000 0001
NO 0.0000*10^0 0.1*10^1
3、小于0.1的情况 0.00000001
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s1[105],s2[105];
char a1[105],a2[105];
int n;
int main()
{
int n,i,l1,l2,p1=0,p2=0,flag=0,t,cnt,ls1,ls2;
while(~scanf("%d %s %s",&n,s1,s2))
{
p1=ls1=0;
l1=strlen(s1);
for (;ls1<l1;++ls1)
{
if(s1[ls1]=='.')
p1=ls1;//点位置
else if (s1[ls1]!='0')
break;
}
if(ls1==l1){//为0
// sprintf(a1,"0");
a1[0]='0',a1[1]='.',t=2;
for (i=0;i<n;++i)
a1[t++]='0';
sprintf(a1+t,"*10^0");
}
else{
a1[0]='0',a1[1]='.',t=2;
if (p1==0)//此为大于1的数
{
for (p1=ls1;p1<l1&&s1[p1]!='.';++p1);
for(i=ls1,cnt=0;i<l1&&cnt<n;++i)
if(s1[i]!='.'){
a1[t++]=s1[i];
cnt++;
}
while(cnt<n){
a1[t++]='0';
cnt++;
}
sprintf(a1+t,"*10^%d",p1-ls1);
}
else{//此为小于1的数
for(i=ls1,cnt=0;i<l1&&cnt<n;++i)
if(s1[i]!='.'){
a1[t++]=s1[i];
cnt++;
}
while(cnt<n){
a1[t++]='0';
cnt++;
}
sprintf(a1+t,"*10^%d",-(ls1-p1-1));
}
} p2=ls2=0;
l2=strlen(s2);
for (;ls2<l2;++ls2)
{
if(s2[ls2]=='.')
p2=ls2;//点位置
else if (s2[ls2]!='0')
break;
}
if(ls2==l2){//
a2[0]='0',a2[1]='.',t=2;
for (i=0;i<n;++i)
a2[t++]='0';
sprintf(a2+t,"*10^0");
}
else{
a2[0]='0',a2[1]='.',t=2;
if (p2==0)//此为大于1的数
{
for (p2=ls2;p2<l2&&s2[p2]!='.';++p2);
for(i=ls2,cnt=0;i<l2&&cnt<n;++i)
if(s2[i]!='.'){
a2[t++]=s2[i];
cnt++;
}
while(cnt<n){
a2[t++]='0';
cnt++;
}
sprintf(a2+t,"*10^%d",p2-ls2);
}
else{//此为小于1的数
for(i=ls2,cnt=0;i<l2&&cnt<n;++i)
if(s2[i]!='.'){
a2[t++]=s2[i];
cnt++;
}
while(cnt<n){
a2[t++]='0';
cnt++;
}
sprintf(a2+t,"*10^%d",-(ls2-p2-1));
}
}
if (strcmp(a1,a2)==0)
printf("YES %s\n",a1);
else
printf("NO %s %s\n",a1,a2);
}
return 0;
}
//4 000.001001 10.01
//3 00000.00001 1.00001
pat 1060 比较科学计数法的更多相关文章
- PAT乙级 1024. 科学计数法 (20)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- PAT乙级 1024. 科学计数法 (20)(未通过全部测试,得分18)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- PAT B1024/A1073 科学计数法
书中AC代码 #include <cstdio> #include <cstring> #include <iostream> #include <cmath ...
- PAT乙级 1024 科学计数法
思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...
- 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 ...
- PAT甲题题解-1060. Are They Equal (25)-字符串处理(科学计数法)
又是一道字符串处理的题目... 题意:给出两个浮点数,询问它们保留n位小数的科学计数法(0.xxx*10^x)是否相等.根据是和否输出相应答案. 思路:先分别将两个浮点数转换成相应的科学计数法的格式1 ...
- C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. PAT Bas ...
- PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
随机推荐
- mongodb的yum源配置和安装
安装前注意: 此教程是通过yum安装的.仅限64位centos系统 安装步骤: 1.创建仓库文件: vi /etc/yum.repos.d/mongodb-org-3.4.repo 然后复制下面配置, ...
- merge into issue
ORA-30926: unable to get a stable set of rows in the source tables 一.经检查,这个错误是由于数据来源表(即语句中,using后面的f ...
- Xamarin 2017.10.9更新
Xamarin 2017.10.9更新 本次更新主要解决了一些bug.Visual Studio 2017升级到15.4获得新功能.Visual Studio 2015需要工具-选项-Xamarin ...
- iOS WKWebview 网页开发适配指南
iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们 ...
- web服务端安全之分布式拒绝服务攻击
一.DDOS攻击的原理分布式拒绝服务,Distributed Denial of Service,利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务.通过大量合法的请 ...
- 【WIN10】使用VS生成appx安裝包,並安裝測試
就算沒有微軟開發者帳號,我們也是可以創建appx的. 只不過有了帳號,我們可以把這個APPX與商店中的應用關聯,並上傳,方便許多罷了. 下面就說步驟: 1.生成appx 1)菜單:項目->應用商 ...
- BZOJ 4066 简单题(KD树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4066 [题目大意] 要求维护矩阵内格子加点和矩阵查询 [题解] 往KD树上加权值点,支 ...
- 2 Spring4 之Bean的配置
Spring4 之Bean的配置 1 IOC & DI 概述 IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源 ...
- CSS实现背景透明,文字不透明
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- hihocoder #1301 : 筑地市场 二分+数位dp
#1301 : 筑地市场 题目连接: http://hihocoder.com/problemset/problem/1301 Description 筑地市场是位于日本东京都中央区筑地的公营批发市场 ...