谁跑的最快?

小狗、小兔、小猫、小猴和小鹿参加百米赛跑,比赛结束后,

请根据他们的回答排出名次。

这个问题从文字上分析很容易得出结果。

由1,得到局部排序为:小猫 < 小猴

由2,得到局部排序为:小狗 < 小鹿

由3,得到局部排序为:小猴 < 小兔 <小狗

综上,等到总的排序为:小猫 < 小猴 <小兔 < 小狗 < 小鹿

如果要由程序解答,则可通过遍历各个小动物的名次,得到一个符合条件的解:

        int a, b, c, d, e = 0;// 对应为小狗, 小兔, 小猫, 小猴, 小鹿的名次

        for (a = 1; a <= 5; a++) {

            for (b = 1; b <= 5; b++) {

                for (c = 1; c <= 5; c++) {

                    for (d = 1; d <= 5; d++) {

                        for (e = 1; e <= 5; e++) {

                            if ((d < c) && (e < a) && (b < d) && (b > a)) {

                                System.out.println("小狗: " + a);

                                System.out.println("小兔: " + b);

                                System.out.println("小猫: " + c);

                                System.out.println("小猴: " + d);

                                System.out.println("小鹿: " + e);

                            }

                        }

                    }

                }

            }

        }

详细的可运行代码在这里。以上代码最终输出:

小狗: 2

小兔: 3

小猫: 5

小猴: 4

小鹿: 1

这个结果可表示在下表中:

程序的几重循环,可看成对上表按行的组合运算的处理。