1060. Are They Equal (25)-字符串处理,科学计数法
来源:互联网 发布:创可贴的网络意思 编辑:程序博客网 时间:2024/05/22 15:48
If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they are both saved as 0.123*105 with simple chopping. Now given the number of significant digits on a machine and two float numbers, you are supposed to tell if they are treated equal in that machine.
Input Specification:
Each input file contains one test case which gives three numbers N, A and B, where N (<100) is the number of significant digits, and A and B are the two float numbers to be compared. Each float number is non-negative, no greater than 10100, and that its total digit number is less than 100.
Output Specification:
For each test case, print in a line “YES” if the two numbers are treated equal, and then the number in the standard form “0.d1…dN*10^k” (d1>0 unless the number is 0); or “NO” if they are not treated equal, and then the two numbers in their standard form. All the terms must be separated by a space, with no extra space at the end of a line.
Note: Simple chopping is assumed without rounding.
Sample Input 1:
3 12300 12358.9
Sample Output 1:
YES 0.123*10^5
Sample Input 2:
3 120 128
Sample Output 2:
NO 0.120*10^3 0.128*10^3
#include<iostream>#include<string>using namespace std;int n; string deal(string s,int& e){//e代表指数部分 while(s.length()>0&&s[0]=='0'){//去掉s的前导零 s.erase(s.begin()); } if(s[0]=='.'){//该数大于0 s.erase(s.begin());//去掉小数点 while(s.length()>0&&s[0]=='0'){ s.erase(s.begin()); e--; } }else{//该数小于0 int t=0; while(t<s.length()&&s[t]!='.'){//寻找小数点 t++; e++; } if(t<s.length()){//while结束后k<s.length(),说明遇到了小数点 s.erase(s.begin()+t);//去除小数点 } } if(s.length()==0){//该数等于0 //若遗忘此步,最后一个测试点错误 e=0; } string res; for(int i=0,j=0;i<n;i++){ if(j<s.length()) res+=s[j++]; else res+='0'; } return res;}int main(){ string s1,s2,s3,s4; cin>>n>>s1>>s2; int e1=0,e2=0; s3=deal(s1,e1);//s3,e1为s1转换为科学计数法后的主体部分和小数部分 s4=deal(s2,e2); if(s3==s4&&e1==e2){ cout<<"YES 0."<<s3<<"*10^"<<e1<<endl; }else{ cout<<"NO 0."<<s3<<"*10^"<<e1<<" 0."<<s4<<"*10^"<<e2<<endl; } return 0;}
- 1060. Are They Equal (25)-字符串处理,科学计数法
- 1060. Are They Equal (25)-PAT甲级真题(科学计数法)
- 1060. Are They Equal (25)-PAT甲级真题(科学计数法)
- PAT-1060 Are They Equal (科学计数法)
- PAT--1060. Are They Equal(字符串处理)
- PAT (Advanced Level) 1060. Are They Equal (25) 字符串转科学计数法
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- 1060. Are They Equal (25)
- LeetCode-142. Linked List Cycle II
- 对于springframework的mongoTemplate扩展自定义的分享
- ECMAScript 6 笔记(五)
- 学习日记-HTML5-4
- 《生活随笔》相关内容将转移到个人微信公众号,本博客专注技术内容。
- 1060. Are They Equal (25)-字符串处理,科学计数法
- 7 用户和用户组
- MySql知识点
- HDU3068最长回文 (Manacher模板)
- Oracle 11g安装图文攻略
- JavaScript的slice()和splice()数组方法
- POJ 2240 Arbitrage spfa判正环
- 初用moogodb
- dicomGo v1.0.3 release note