Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
G++过不了,C++过了,附代码#include <iostream> #include <stdio.h> #include <vector> #include <set> #include <algorithm> #include <cmath> #include <string.h> using namespace std; double abs(double a, double b) { return a > b ? a - b : b - a; } int Gcd(int a, int b) { if (a < b) { swap(a, b); } if (b == 0) { return a; } return Gcd(b, a % b); } int main() { freopen("/Users/zxj/Desktop/poj_input.txt", "r", stdin); double A; int L; scanf("%lf %d", &A, &L); int D = 0; int N = 0; double min_value = 1000000000; for (int i = 1; i <= L; ++i) { int N1 = i * A; int N2 = i * A + 1; if (N1 > L ) { N1 = L - 1; N2 = L; } else if (N2 > L) { N2 = L; } if (abs(A, N1 * 1.0f / i) < min_value) { min_value = abs(A, N1 * 1.0f / i); D = i; N = N1; } if (abs(A, N2 * 1.0f / i) < min_value) { min_value = abs(A, N2 * 1.0f / i); D = i; N = N2; } } int gcd = Gcd(N, D); N /= gcd; D /= gcd; printf("%d %d\n", N, D); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator