题目只要你判断数字A是否等于B,傻子都知道肯定不是int数据类型可以存下的,A可能有1000位,要用字符串类型存储,比较的时候注意\(0001\) 、\(001\)、\(1\)都是一样的,即前导零不算 好吧,题目只说了number,没说是整数呀 分析:
比较前,先去掉前面多余的0,再去小数点后面多余的0(首先要保证有小数点)。最后,如果小数点后面所有的数都去的掉了,还要同时去掉小数点。#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
void ClearZero(string &str) {
int i;
for(i = 0; i < str.size(); ++i) {
if(str[i] != '0') {
break;
}
}
if(str[i] == '.') {
str.erase(0, i - 1);
} else {
str.erase(0, i);
}
for(i = 0; i < str.size(); ++i) {
if(str[i] == '.')
break;
}
if(i != str.size()) {//说明有小数点
int j;
for(j = str.size() - 1; j > i; --j) {
if(str[j] != '0') {
break;
}
}
if(j == i) {
str.erase(i);
} else {
str.erase(j + 1);
}
}
}
int main()
{
string a, b;
while(cin >> a >> b) {
ClearZero(a);
ClearZero(b);
if(a == b) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}