哈喽大家好,我是廖老师。下面来看一下五七二八这道题,旗鼓相当的对手。题目大家暂停,先看一下题目的具体要求。其实就是有二名同学,怎么样去找七五相当对手?就是每一对同学的每一科成绩分差都不大于五,不就小于等于五吗?总分分差不大于十就小于等于十。
这样的一对选手同学就是旗鼓相当的对手了,可以通过这个样例来分析一下。比方第一个同学九十,九十,九十,对不对?第二个同学八十五,九十五,九十对应的九十跟八十五之间正好就差五分,九十跟九十五之间也差五分,这个就不差,所以他们两个人是不是就是一个旗鼓相当对手?
第二个人跟第三个人是不是相差五分以内?这个是相差五分以内,对不对?但是有一个条件是要看一下什么?是要看一下他们俩之间是不是总分上面是不是相差是吗?小一点是的,如果是,那他们俩之间也是旗鼓相当的对手。
大致已经了解了,其实题目就比较简单了,因为这里面已经给了你提示,同一个人可能会跟其他好多对同学结队,也就是说从第一个人开始需要跟第二个人比,跟第三个人比,从第二个人开始要跟第三个人去比。
看下怎么做?in了一个n,一个a,因为数据范围已经给过了,所以建立一个幺零幺零和五的矩阵,然后看的用来计数。c n之后来输入一到n之间每一个人的分数,a第一个i一就相当于第一科成绩,i二以此类推,i四这个地方是空着的,所以是怎么样可以用来储存他们的和?
把它的和都存下来,存下来过以后来看从i等一到n之间是不是就要从i加一开始,因为第一个人不能跟自己比,对不对?要跟后面这个人比,所以a b s保证什么?保证他的绝对值吗?也就是只要判断差值是小于等于五的不就可以了吗?
所以第一个人就是i一跟这一比,i二跟这二比,i三跟这三比,i四是不是就是小于等于十?用一个 abs就解决了所谓的复制的问题了,只要满足这个条件,三个条件,两个条件,三个条件,四个条件都满足的情况下是不是就有数量增加?数量增加最后输出数量是不是就结束了?
所以代码还是比较简单的,大家自己再去暂停看一下。