设计一个找不同的程序该程序接收8个整数,其中只有一个整数与其他不同请利用比较找出该整数,并输出比较的次数与过程(利用一次关系运算结果真假算一次,請尽量设计最有效率的比...
设计一个找不同的程序该程序接收8个整数,其中只有一个整数与其他不同请利用比较找出该整数,并输出比較的次数与过程(利用一次关系运算结果真假算一次,请尽量设计最有效率的比较方案并在设计部分中给出效率分析。该程序实现方式规定使用if-else语句)
可能的输入输出示例: (该方法利用两两比较可能效率较低)
可能的输入输出示例: (该方法利用两两比较可能效率较低)
这个问题吧,关键是算法还有那个“利用一次关系运算结果真假算一次”,那么每个for循环算不算一次如果知道是固定8个还好,不固定的话肯定要循环调用。我试着使用了递归来计算递歸的开头就需要判断一下是不是只有1个数了,那么这个判断if (n==1)是否算一次
我的思路是这样的,取第一个数为“伪”基准值然后把N个数分2半,两半均等(偶数个)或前一半少1个数(奇数个)把前半部分n个数加起来,与基准数*n进行比较如果相等,则问题数在第2部分否则問题数在第1部分,同时从非问题数那部分取一个数作为基准数这样递归判断有问题的那部分,直到只有1个数了就是问题数。
如图所示望采纳。。。