HDU 2054 A == B ?
阿新 • • 發佈:2018-04-20
targe cin 高精度 小數點 cmp http false php col
題目:http://acm.hdu.edu.cn/showproblem.php?pid=2054
題意:給兩個高精度大數,判斷是否相等。
解法:
大數:采用數組儲存各位數字。
小數點(高精度數字):先消除小數點以及末尾的0,再用strcmp對字符串進行比較。
AC:
#include <bits/stdc++.h> using namespace std; bool point(char *p) { int l = strlen(p); for(int i = 0 ; i < l ; i++) if(p[i]==‘.‘) return true;return false; } void change(char *p) { int l = strlen(p); if(point(p)) { for(int i = l-1 ; p[i]==‘0‘ ; i--) { p[i] = ‘\0‘; l--; } if(p[l-1]==‘.‘) p[l-1] = ‘\0‘; } } int main() { char a[100005] ,b[100005]; while(cin >> a >> b) { change(a); change(b);if(strcmp(a,b)==0) cout << "YES" <<endl; else cout << "NO" <<endl; } return 0; }
HDU 2054 A == B ?