数列极差问题.doc

上传人:汽*** 文档编号:559395181 上传时间:2023-04-12 格式:DOC 页数:15 大小:54.50KB
返回 下载 相关 举报
数列极差问题.doc_第1页
第1页 / 共15页
数列极差问题.doc_第2页
第2页 / 共15页
数列极差问题.doc_第3页
第3页 / 共15页
数列极差问题.doc_第4页
第4页 / 共15页
数列极差问题.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数列极差问题.doc》由会员分享,可在线阅读,更多相关《数列极差问题.doc(15页珍藏版)》请在金锄头文库上搜索。

1、数列极差问题在黑板上写了N个正整数组成的一个数列,进行如下操作: 每次擦去其中的两个数a和b,然后在数列中加入一个数ab1,如此下去直至黑板上 剩下一个数,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min, 则该数列的极差定义为Mmaxmin。 请你编程,对于给定的数列,计算极差。 输入 输入包含多个测试集。每个测试集的第一个数N表示 正整数序列长度(0N50000),随后是N个正整数。N为0表示输入结束。 输出 每个结果一行 输入样例 31230输出样例 2来源:http:/ 或者 注册 成为本站会员评论人: 红色的狐狸发布时间: 2012-3-11 15:06:06我觉的

2、每次擦去的两个数为最小的,所得的为最大值,每次擦去的为两个最大的,得到的为最小值;例如:12345=3345=1045=1021=211得到最大值;12345=12321=1264=1129=130得到最小值,差值为211-130=81代码如下:#include#includeintPartitition(int*a,intlow,inthigh)a0=alow;intpivotkey=alow;while(lowhigh)while(lowpivotkey)high-;alow=ahigh;while(lowhigh&alow=pivotkey)low+;ahigh=alow;alow=a0

3、;returnlow;voidQsort(int*a,intlow,inthigh)if(lowai2&i2=n)ai2-2=ai2+;ai2-2=t;while(i2=n)ai2-1=ai2;i2+;ai2-1=0;n=n-1;returna1;intMin(int*a,intn)inti=3;intt=a1*a2+1;for(;i=n;i+)t=ai*t+1;returnt;intmain()inta100,b100,n,i=1;intc10;printf(请输入测试数nn);scanf(%d,&n);if(n=1)printf(输入有误);return0;printf(请输入n个测试数n

4、);scanf(%d,&ai);while(ai)scanf(%d,&a+i);Qsort(a,1,n);for(i=1;i=1;i-)bi=an-i+1;intmax=Max(a,n);intmin=Min(b,n);printf(最大的极差为:%dn,max-min);return0;评论人: py102356发布时间: 2011-10-16 21:08:48不好意思有点错误把最后那个for(j=1;jbj)min=bj;if(maxbj)max=bj;中的n改为i-1评论人: py102356发布时间: 2011-10-16 20:59:30#includevoidfun(inta,in

5、tn,intb)staticinti=0;intj,k,m,x;intc100;if(n=1)bi+=a0;bi=0;return;for(j=0;jn-1;j+)for(k=j+1;kn;k+)for(x=0;xn;x+)cx=ax;cj=cj*ck+1;for(m=k;mn-2;m+)cm=cm+1;fun(c,n-1,b);voidmain()inta100;intb1000;intn,i=0,j;intmax,min;printf(输入测试数据个数n:);scanf(%d,&n);printf(输入数据:);scanf(%d,&ai+);while(ai-1)scanf(%d,&ai+

6、);fun(a,n,b);i=0;while(bi+);max=min=b0;for(j=1;jbj)min=bj;if(maxbj)max=bj;printf(数列的极差是:%dn,max-min);评论人: py102356发布时间: 2011-10-16 20:13:49算出所有的结果,然后找最大和最小值评论人: parid发布时间: 2011-9-13 22:53:49#includevoidsort(int*a,intp)inti,temp,j;for(i=0;ip;i+)for(j=0;jaj+)temp=aj;aj=aj+1;aj+1=temp;intmax_num(int*a,

7、intp)inti=0,m,n=a0;while(i0)ai-1=ai-1*ai+1;i-;returnai;main()inta5000=0;intn,i,m;printf(输入n:n);scanf(%d,&n);printf(输入%d个整数,以0结尾:n,n);scanf(%d,&m);for(i=0;(m!=0)&(in);i+)ai=m;scanf(%d,&m);sort(a,m);printf(最小数是:%dn,max_num(a,n)-min_num(a,n);评论人: sam_lin发布时间: 2011-8-31 15:06:16我觉得把这个数列升序排列,先擦去前两个,然后循环擦

8、去新加入的和第一个,如此算出的应该是min;然后降序排列算出来的应该是max。不知道我这想法是不是对的?评论人: Eejit发布时间: 2011-5-27 15:14:55表示与sea313081574想的一样,不知道对不对评论人: xuke发布时间: 2011-5-25 22:42:08#include#include#definemaxn999999999usingnamespacestd;intff(intn)if(n=0)return1;intsum=0;while(n)sum+;n=n/10;returnsum;boolcmp(constinta,constintb)returnab;intmain()inta2002;intb2002;intn;inttemp;intmax,min;inti;while(cinn,n)for(i=0;iai;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号