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 |
一直wrong, 求指点#include<iostream> #include<cmath> using namespace std; void ExtendGcd(int a, int b, int &d, int &x, int &y) { if(b==0) x = 1, y=0, d =a; else { ExtendGcd(b, a%b, d, x, y); int temp = x; x = y; y = temp - a/b*y; } } void swap(int &x, int &y) { int temp = x; x= y; y= temp; } int main() { int a, b, d; int D, x, y, x1, x2, y1, y2; while( cin>>a>>b>>d && (a+b+d)) { if(a<b) swap(a, b); ExtendGcd(a, b, D, x, y); x*=(d/D); y*=(d/D); int t = D*y/a; x1 = x+b/D*t; y1 = y-a/D*t; if(D*y%a!=0) { y>0?t++:t--; x2 = x+b/D*t; y2 = y-a/D*t; } if(abs(x1*1.0)+abs(y1*1.0)>abs(x2*1.0)+abs(y2*1.0)) x1 =x2, y1=y2; cout<<abs(x1*1.0)<<" "<<abs(y1*1.0)<<endl; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator