极差问题:c++求解1-10的极差问题的初等解法

1.问题的描述

       在黑板上一共有1-10 共10 个数,,进行如下操作:每次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1,如此下去直至黑板上只有一个数,在所按的操作方式得到的数当中,最大的为max,最小的为min,则该数列的极差定义为M=max-min;对于给定的数列: arr[] = { 1,6,5,9,8,4,3,7,2,10 };编程计算极差M。

2.问题的分析

      假设有5个数,分别为:1,4,3,2,5,如果首先先对这五个数进行从小到大的排序,即为:1,2,3,4,5,;合并前两个数是得到的数列是:3,3,4,5;一次类推,最后得到的是一个值,为211,如果对这5个数进行从大到小的排序,即为:5,4,3,2,1;然后进行如上相同的操作,最后得到的值为:130;所以可见当是从小到大的排序时,所求得的为最大值,反之则是最小值,而且最大值与最小值的求解过程都是类似的,以此类推也可得到求N个数的极差。

3.思路

       用一个数组arr[10]保存1-10这十个数,然后分别进行从小到大和从大到小的排序,接着根据分析中的操作分别求出最大值和最小值,最后即可求出1-10 的极差。

源代码如下:

#include "stdafx.h"
#include<algorithm>
#include<iostream>
using namespace std;

//从小到大
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值