回 帖 发 新 帖 刷新版面

主题:求教小田甜

请教下面题的程序:

集合M的元素的定义如下:

    (1) 数1属于M;
    (2) 若X属于M, 则A=2X+1, B=3X+1, C=5X+1, 也属于M;
    (3) 再没有别的数属于M。(M={1,3,4,6,7,9,10,13,15,16...,如果M中的元素是按递增次序排列的,求出其中的第201,202和203个元素。

回复列表 (共5个回复)

沙发

开个数组来推吧 - -

板凳

先求出来205个数,然后用优化冒泡,如果两书相等,把后一个数变为0,最后writeln('201:',a[201]);writeln('202:',a[202]);writeln('203:',a[203]);这题我也做过

3 楼

开个堆吧

4 楼

对!有道理

5 楼

program jihe(input,output);
var
  i,j,x,y,n,b:integer;
  a:array[1..1000]of integer;
begin
  read(n);
  a[1]:=1;
  x:=1;y:=1;   b:=1;
  repeat
    b:=b+1;
    i:=a[x]*2+1;
    j:=a[y]*3+1;
    if i<j
      then
        begin
          x:=x+1;
          a[b]:=i;
        end
      else
        begin
          y:=y+1;
          a[b]:=j;
        end;
  until b=n;
  for i:=1 to n do
    write(a[i],' ');
end.
这样边做边比较边排序,不懂就问你老师吧。

我来回复

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