- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数列极差问题
在黑板上写了N个正整数组成的一个数列,进行如下操作: 每次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上 剩下一个数,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min, 则该数列的极差定义为M=max-min。
请你编程,对于给定的数列,计算极差。
输入
输入包含多个测试集。每个测试集的第一个数N表示 正整数序列长度(0<=N<=50000),随后是N个正整数。N为0表示输入结束。
输出
每个结果一行
输入样例
3
1
2
3
0
输出样例
2
来源:/ojs/show.php?Proid=1062Contestid=0
必威体育精装版评论发表评论
您尚未登录本站,不能发表评论,请登录 或者 注册 成为本站会员
评论人: 红色的狐狸??发布时间: 2012-3-11 15:06:06
我觉的每次擦去的两个数为最小的,所得的为最大值,每次擦去的为两个最大的,得到的为最小值;例如:1?2?3?4?5?=》3?3?4?5=》10?4?5=》10?21=》211得到最大值;1?2?3?4?5=》1?2?3?21=》1?2?64=》1?129=》130得到最小值,差值为211-130=81代码如下:
#include?stdio.h
#include?stdlib.h
int?Partitition(int?*a,int?low,int?high){
????a[0]=a[low];
????int?pivotkey=a[low];
????while(lowhigh){
????????while(lowhigha[high]pivotkey){
????????????high--;
????????}
????????a[low]=a[high];
????????while(lowhigha[low]=pivotkey){
????????????low++;
????????}
????????a[high]=a[low];
????}
????a[low]=a[0];
????return?low;
}
void?Qsort(int?*a,int?low,int?high){
????if(lowhigh){
????????int?pivotkey=Partitition(a,low,high);
????????Qsort(a,low,pivotkey-1);
????????Qsort(a,pivotkey+1,high);
????}
}
int?Max(int?*a,int?n){
????int?i2,t;
????while(n!=1){
????????t=a[1]*a[2]+1;
????????i2=3;
????????while(ta[i2]i2=n){
????????????a[i2-2]=a[i2++];
????????}
????????a[i2-2]=t;
????????while(i2=n){
????????????a[i2-1]=a[i2];
????????????i2++;
????????}
????????a[i2-1]=0;
????????n=n-1;
????}
????return?a[1];
}
int?Min(int?*a,int?n){
????int?i=3;
????int?t=a[1]*a[2]+1;
????for(;i=n;i++){
????????t=a[i]*t+1;
????}
return?t;
}
int?main()
{
????int?a[100],b[100],n,i=1;
????int?c[10];
????printf(请输入测试数n\n);
????scanf(%d,n);
????if(n=1){
????????printf(输入有误);
????????return?0;
????}
????printf(请输入n个测试数\n);
????scanf(%d,a[i]);
????while(a[i])
????????scanf(%d,a[++i]);
????Qsort(a,1,n);
????for(i=1;i=n;i++){
????????printf(%d?,a[i]);
????}
????i=1;
????for(i=n;i=1;i--){
????????b[i]=a[n-i+1];
????}
????int?max=Max(a,n);
????int?min=Min(b,n);
????printf(最大的极差为:%d\n,max-min);
????return?0;
}
评论人: py102356??发布时间: 2011-10-
您可能关注的文档
最近下载
- 2024热点作文素材(课间“圈养”)+10个简明精辟的议论文论据.docx
- 趣味数学讲座1(幻方).ppt VIP
- 小学语文校本主题研修方案设计.pptx
- 2024年PET-Trainer-必威体育精装版课件-听力1.pptx
- 2024年广西中考英语卷试题真题答案祥解评析(含作文范文).docx
- 扬州市义务学业质量监测四年级语文模拟试题B卷及答案.docx VIP
- 高考英语词汇3500词-乱序版 .pdf VIP
- bosch博世 GLM 150 GLM 250 VF 使用说明书.pdf
- 【2021部编版语文】 五年级下册第四单元教材解读 PPT课件.ppt
- 人教版七年级上册数学第三章代数式单元试题.docx VIP
文档评论(0)