|
- PROGRAM EX2;
- VAR A,B,RHS:INTEGER;VAR X,Y:INTEGER;
- VAR EXISTENCE:BOOLEAN;
- PROCEDURE EXT_EUCLIDEAN(M,N:INTEGER;VAR X,Y:INTEGER);
- VAR R,Q:INTEGER;VAR C,D:INTEGER;
- BEGIN
- IF N=0 THEN BEGIN
- EXISTENCE:=M DIV RHS=0;
- X:=RHS DIV M;Y:=0;
- EXIT();
- END ELSE BEGIN
- R:=M MOD N;Q:=M DIV N;EXT_EUCLIDEAN(N,R,X,Y);
- END;
- C:=Y;D:=X-Q*Y;
- X:=C;Y:=D;
- END;
- PROCEDURE SWAP(VAR C,D:INTEGER);
- VAR INTERMED:INTEGER;
- BEGIN
- IF D>C THEN BEGIN
- INTERMED:=C;C:=D;D:=INTERMED;
- END;
- END;
- BEGIN
- READLN(A,B,RHS);SWAP(A,B);
- EXT_EUCLIDEAN(A,B,X,Y);
- IF EXISTENCE=FALSE THEN WRITELN('NO SOLUTION') ELSE WRITELN(X,Y);
- END.
复制代码 |
|