1. 程式人生 > >HDU 2054 A == B ?

HDU 2054 A == B ?

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 ?