回 帖 发 新 帖 刷新版面

主题:初学者请教,简单问题

设计程序求一个最小正整数,使得它被3除余2,被7除余3,被11除余4

我的答案如下(有错):
program xmod;
        var  x:integer;
begin
     repeat
           x:=x+1;
     until x mod 3=2 and x mod 7=3 and x mod 11=4;
     writeln('x=',x);
     readln
end.


请前辈们指点一下
[em2][em3]

回复列表 (共11个回复)

沙发

晕```咋没人帮小弟呢??

板凳

。。。。你才发那么点时间,当然没人帮,要耐心啊
program xmod;
        var  x:integer;
begin
     repeat
           x:=x+1;
     until (x mod 3=2) and (x mod 7=3) and (x mod 11=4);
     writeln('x=',x);
     readln
end.

你括号没加哦




加分哦

3 楼

原来是这样,我狂晕```
顺便问一下,初学者应该学些什么?如何练习?

4 楼

program xmod;
        var  x:integer;
begin
     x:=0;
     repeat
           x:=x+1;
     until (x mod 3=2) and (x mod 7=3) and (x mod 11=4);
     writeln('x=',x);
     readln
end.
而且x没赋初值!

5 楼

。。。。4楼说的没错
学什么??问问你的老师把
先把基础操作学了,比如那个括号-_-,然后算法,然后做题!

6 楼

练语法嘛,如果你对编写游戏感兴趣可以适当的写点小游戏

7 楼

我觉得还可以简化一下:
  var
    x:integer;
 begin
 x:=15;{最小的}
  repeat 
   x:=x+1;
 until (x mod 3=2)and(x mod 7=3)and(x mod 11=4);
  write('x=',x);
end.

8 楼

[quote]我觉得还可以简化一下:
  var
    x:integer;
 begin
 x:=15;{最小的}
  repeat 
   x:=x+1;
 until (x mod 3=2)and(x mod 7=3)and(x mod 11=4);
  write('x=',x);
end.[/quote]

这个减少了判断次数,提高了程序效率!

PS:这不叫简化叫优化!!

9 楼

直接输出59不就得了吗.

10 楼

我认为4楼的有点多虑了,在PASCAL中,变量默认的值是0,我认为可以不用写'X:=0',简化程序!

我来回复

您尚未登录,请登录后再回复。点此登录或注册