问题描述: 就是三家的9个小孩子在一起跑步,没有跑的相同的排名的,跑第一名的得九分,第二名的得到 八分,以此类推,并且排名没有相邻着的,就是第一名是王家的,第二名是张家的话,第三名就 不能是张家的了,现在已知李家第一,王家第二,各个家族的总得分是相同的,问最后一名的小 孩子是哪个家族的........ 简单思路: 这个题我们可以边推理边想思路,首先 李家已经得了第一名(9分) 王家得了第二名(8分) 很明显的是九个孩子一共有45分,而三个家族的得分是相同的,那么每个家族应该得到了15分, 李家已经得到了9分了,所以第三名(7分)一定不是李家的,而王家不可能连续的排名,所以 第三名一定是张家(7分)的 那么第四名(6分)一定不会是张家的了,所以张家的第二名的孩子只可能得到4分或者5分 而王家和李家的第二名都可能得到4分,5分,6分 故而我们可以建立一个二维数组: 0 1 2 张 7 4||5 王 8 4||5||6 李 9 4||5||6 所以就可以定义三个变量i.j.k分别代表的是张家第二名的分数,王家第二名的分数,李家第二名 的分数 而张家、王家、李家的第三名的得分我们可以用15减去他们前两名的得分,然后我们就可以得到 他们三家的第三名的得分了,但是他们三家的第二名的得分都不相同,第三名的得分也都是不相 同的,所以大致的思路就是如此了。 代码如下: public class Lab1153 { public static void main(String[] args) { int array[][]=new int[3][3]; array[0][0]=7; array[1][0]=8; array[2][0]=9; int i,j,k; for(i=4;i<6;i++) for(j=4;j<7;j++) for(k=4;k<7;k++) { if((i!=j&&i!=k&&j!=k)&&(15-7-i)!=(15-8-j)&&(15-7-i)!=(15-9-k)&&(15-8-j)!=(15-9-k)) { array[0][1]=i;array[0][2]=15-7-i; array[1][1]=j;array[1][2]=15-8-j; array[2][1]=k;array[2][2]=15-9-k; } } for(int m=0;m<array.length;m++) for(int n=0;n<array[m].length;n++) if(array[m][n]==1) { if(m==0) System.out.println("Z"); else if(m==1) System.out.println("W"); else System.out.println("L"); } } }
0.0分
8 人评分