A是俄罗斯人
B是美国人
C是法国人
D是德国人
E是英国人
F是意大利人

解决方案 »

  1.   

    假设横排是美国、德国、英国、法国、俄罗斯、意大利竖排是A、B、C、D、E、F
    这样形成一个矩阵
    a(1,1)=0'不是美国
    a(1,2)=0'不是德国
    a(1,4)=0'不是法国
    a(1,5)=0'不是俄罗斯
    a(2,1)=0'不是美国
    a(2,2)=0'不是德国
    a(2,4)=0'不是法国
    a(3,1)=0'不是美国
    a(3,2)=0'不是德国
    a(3,4)=0'不是法国
    a(3,5)=0'不是俄罗斯
    a(3,6)=0'不是意大利
    a(5,5)=0'不是俄罗斯
    a(6,2)=0'不是德国从这个条件可以得出C是是英国人
      

  2.   

    A不等于美国人
    A不等于法国人
    A不等于英国人不等于C
    A不等于俄罗斯人
    A不等于德国人
    A为意大利人
      

  3.   

    用ASP写了一个算法
    也不知道对不对
    你可以验证一下:
    <%
    group=array("","A","B","C","D","E","F")
    guojia=array("","美国","德国","英国","法国","俄罗斯","意大利")
    Dim  a(7,7)
    for i=0 to 6
    for j=0 to 6
    if i=0 then
    a(0,j)=1
    else
    a(i,j)=j
    end if
    next
    next
    a(1,1)=0'不是美国
    a(1,2)=0'不是德国
    a(1,4)=0'不是法国
    a(1,5)=0'不是俄罗斯
    a(2,1)=0'不是美国
    a(2,2)=0'不是德国
    a(2,4)=0'不是法国
    a(3,1)=0'不是美国
    a(3,2)=0'不是德国
    a(3,4)=0'不是法国
    a(3,5)=0'不是俄罗斯
    a(3,6)=0'不是意大利
    a(5,5)=0'不是俄罗斯
    a(6,2)=0'不是德国
    do while a(0,1)+a(0,2)+a(0,3)+a(0,4)+a(0,5)+a(0,6)>0
    for i=0 to 6
    if a(0,i)=1 then
    z=0
    for j=0 to 6
    if a(i,j)<>0 then
    x=j
    y=i
    z=z+1
    end if
    next
    if z=1 then
    for t=1 to 6
    if t<>i then 
    a(x,t)=0
    a(0,y)=0
    end if
    next
    end if
    end if
    next
    loop
    for i=0 to 6
    for j=0 to 6
    if a(i,j)<>0 then
    response.Write group(i,0)&"是"&guojia(a(i,j))&"人"
    response.Write "<br>"
    end if
    next
    next
    %>
      

  4.   

    下班回家后再搞一个PHP的算法
      

  5.   

    从已知条件中可以得知以下结论:a(1,1)=0'A不是美国
    a(1,2)=0'A不是德国
    a(1,4)=0'A不是法国
    a(1,5)=0'A不是俄罗斯
    a(2,1)=0'B不是美国
    a(2,2)=0'B不是德国
    a(2,4)=0'B不是法国
    a(3,1)=0'C不是美国
    a(3,2)=0'C不是德国
    a(3,4)=0'C不是法国
    a(3,5)=0'C不是俄罗斯
    a(3,6)=0'C不是意大利
    a(5,5)=0'E不是俄罗斯
    a(6,2)=0'F不是德国