回 帖 发 新 帖 刷新版面

主题:一道变态题目,谁来解决??

一个人想了两个2-99之间的数,将和告诉了甲,将积告诉了乙. 
    甲对乙说:"我敢肯定你不知道这两个数,但我也不知道." 
    乙说:"我本来也不知道,听你这样一说,我就知道了." 
    甲说:"我也知道了." 
  
    没有输入数据,输出两个数.

回复列表 (共25个回复)

21 楼

甲说:"我也知道了." 
这说明了把甲的数分开后,只有一组的积等于以上数
求出:
4和13,4*13=52,4+13=17

过程:
const ys:array[1..54]of integer=(11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,
                                79,83,87,89,93,95,97,101,107,113,117,119,121,123,
                                125,127,131,135,137,143,145,147,149,155,157,161,163,
                                167,171,173,177,179,185,187,189,191,197);
var a,b,c:array[1..32767]of byte;
    d:array[1..200]of byte;
procedure ok(n:integer);
var i:integer;
begin
     for i:=2 to n-2 do
     begin
          b[i*(n-i)]:=i;
          c[i*(n-i)]:=n-i;
          inc(a[i*(n-i)]);
     end;
end;
var i:integer;
begin
     fillchar(a,sizeof(a),0);
     for i:=1 to 54 do
     ok(ys[i]);
     for i:=1 to 10000 do
     if a[i]=2 then
        inc(d[b[i]+c[i]]);
     for i:=1 to 200 do
     if d[i]=1 then writeln(i);

end.

22 楼

总算解开了

23 楼

这题乃是题中之经典

24 楼


25 楼

毛病,一头问号?

我来回复

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