请选择 进入手机版 | 继续访问电脑版

Lazarus中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

版权申明
查看: 1257|回复: 2

这个程序为什么我无论输入什么值,都返回no solution?

[复制链接]

该用户从未签到

发表于 2015-5-1 01:29:37 | 显示全部楼层 |阅读模式
  1. PROGRAM EX2;
  2. VAR A,B,RHS:INTEGER;VAR X,Y:INTEGER;
  3. VAR EXISTENCE:BOOLEAN;
  4. PROCEDURE EXT_EUCLIDEAN(M,N:INTEGER;VAR X,Y:INTEGER);
  5. VAR R,Q:INTEGER;VAR C,D:INTEGER;
  6. BEGIN
  7. IF N=0 THEN BEGIN
  8. EXISTENCE:=M DIV RHS=0;
  9. X:=RHS DIV M;Y:=0;
  10. EXIT();
  11. END ELSE BEGIN
  12. R:=M MOD N;Q:=M DIV N;EXT_EUCLIDEAN(N,R,X,Y);
  13. END;
  14. C:=Y;D:=X-Q*Y;
  15. X:=C;Y:=D;
  16. END;
  17. PROCEDURE SWAP(VAR C,D:INTEGER);
  18. VAR INTERMED:INTEGER;
  19. BEGIN
  20. IF D>C THEN BEGIN
  21. INTERMED:=C;C:=D;D:=INTERMED;
  22. END;
  23. END;
  24. BEGIN
  25. READLN(A,B,RHS);SWAP(A,B);
  26. EXT_EUCLIDEAN(A,B,X,Y);
  27. IF EXISTENCE=FALSE THEN WRITELN('NO SOLUTION') ELSE WRITELN(X,Y);
  28. END.
复制代码
回复

使用道具 举报

该用户从未签到

发表于 2015-5-2 12:29:23 | 显示全部楼层
算式写的太复杂,看不懂
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-5-4 17:28:12 | 显示全部楼层
看起来好累,建议代码格式化一下。
第8行 EXISTENCE:=M DIV RHS=0;
回复 支持 反对

使用道具 举报

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1

GMT+8, 2019-1-20 21:22 , Processed in 0.054229 second(s), 10 queries , Redis On.

Powered by Discuz! F1.0 Build 20160930

© 2001-2019 Comsenz Inc. & Discuz! Fans

快速回复 返回顶部 返回列表