首页 > 学院 > 开发设计 > 正文

1060. Are They Equal (25)

2019-11-08 18:51:14
字体:
来源:转载
供稿:网友

找到第一个有效数字和第一个小数点的位置。然后讨论进行转换

#include<iostream>#include<string>#PRagma warning(disable :4996)using namespace std;int N;string change(string str)//str边科学计数法的str{ string str2;int temp; unsigned int pos1 = str.find('.'); unsigned int pos2 = str.find_first_not_of("0."); if (pos2 >= str.length()) { str2 = string(N, '0'); temp = 0; } else { str2=string(str, pos2); int pos = str2.find('.'); if(pos<str2.length())str2.erase(pos,1); str2 += string(N, '0'); str2.resize(N); if (pos1 >= str.length()) temp = str.length() - pos2; else temp = pos1 < pos2 ? pos1 - pos2 +1: pos1 - pos2; } char t[10000]; sprintf(t, "0.%s*10^%d", str2.c_str(), temp); if(N==0) sprintf(t, "0.0*10^0"); return string(t);}int main(){ cin >> N; string str1,str2; cin >> str1>>str2; str1 = change(str1); str2 = change(str2); if (str1 == str2) cout << "YES " << str1 << endl; else cout << "NO " <<str1 << " " << str2 << endl;}
上一篇:编程的DRY规则

下一篇:foreach循环

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表