回 帖 发 新 帖 刷新版面

主题:[讨论]这道题对小弟有点困难,谁能帮助我?谢谢.

编程求最小正整数M,N(0<N<M)为何值时,1989m与1989n的最后三位数字相同.谢谢.

回复列表 (共11个回复)

沙发

我随便写一个
for m:=1 to 1000 do
  for n:=1 to 1000 do
    if (1989*m mod 1000=1989*n mod 1000) then begin writeln(m,' ',n); exit; end;

板凳

如果是在1000以外呢?谢谢.

3 楼

m=0
 x=0
  while x=0 do
   begin
   m:=m+1 
     n=0
     while x=0 do 
       begin
        n:=n+1
         if (1989*m mod 1000=1989*n mod 1000) then begin writeln(m,' ',n);
          x:=1 
       end;
      end;

4 楼

3楼你这个程序是不行的, 你检查一下.
  我觉得这道题用高精度做才行.可我不会.

5 楼

小弟不才,问一下,高精度我知道,但是具体算法是这样的呢?有两个数,我就搞昏了.谢谢.

6 楼

?????不要高精度阿!实在不行用int64阿!

7 楼

int64 是什么啊?

8 楼

int64就是fp里一个最大的整型变量,我记得好像是可以存储19还是18位,反正很大就对了,而且这题求后3位,你只要n的后三位×989就可以了
用整型就可以了

9 楼

我的程序和贺天的差不多,稍微改了点
for n:=1 to 999 do
  for m:=n to 999 do
    if (989*m mod 1000=989*n mod 1000) then 
      begin
        writeln(m,' ',n); 
        exit;
      end;

10 楼

fp是什么呢?这道题我自己解出来了,有数学规律的,不用这么麻烦的.

我来回复

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