预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2022华为机试练习题及答案2022年华为机试练习题及答案华为机试并不难只要你基础学问扎实信任你可以顺当通过考试的下面跟yjbys我一起来看看最新的华为机试练习题吧!题目描述:题目描述接近开学了小C才想起来数学老师布置了暑假作业。暑假作业是许多张试卷每张试卷所需的时间和获得的价值已知请你帮他支配一下用他仅剩的一点时间来做最有价值的作业。接口说明原型:intGetMaxValue(intnPapersintnRemainintpaper[][2]double*pMaxValue)输入参数:intnPapers:试卷的数目(1≤Papers≤20)intnRemain:表示剩余的时间(1≤nRemain≤10000)intpaper[][2]:nPapers*2的数组每一行的两个元素依次为做完这一份试卷所需的时间、做完这份试卷获得的价值。假如剩余时间不够做完一份卷子可依据剩余时间获得卷子的部分价值。输出参数:double*pMaxValue:获得的最大价值返回值:0:异样1:胜利学问点:工程环境请运用VS2005代码/*---------------------------------------*日期:2022-06-30*作者:SJF0115*题目:Home+Work*来源:华为上机-----------------------------------------*/#include"OJ.h"#includeusingnamespacestd;/*输入:nPapers表示试卷的数目(1≤Papers≤20)nRemain表示剩余的.时间(1≤nRemain≤10000)paper[][2]是一个Papers*2的数组每一行的两个元素依次为做完这一份试卷所需的时间、做完这份试卷的价值输出:*pMaxValue为获得的最大价值返回:0:异样1:计算胜利返回*/intGetMaxValue(intnPapersintnRemainintpaper[][2]double*pMaxValue){if(nPapers<0||nRemain<0||pMaxValue==NULL){return-1;}//if//计算性价比double*cost=newdouble[nPapers+1];for(inti=0;i<nPapers;++i){cost[i]=(double)paper[i][1]/paper[i][0];}//for//按性价比排序for(inti=0;i<nPapers-1;++i){for(intj=0;j<nPapers-i-1;++j){if(cost[j]>cost[j+1]){swap(cost[j]cost[j+1]);swap(paper[j][0]paper[j+1][0]);swap(paper[j][1]paper[j+1][1]);}//if}//for}//for//计算最大价值intindex=0;inttimevalue;*pMaxValue=0;while(nRemain>0&&index<nPapers){time=paper[index][0];value=paper[index][1];//剩余时间不足以做一份试卷取得部分价值if(time>nRemain){*pMaxValue+=(double)nRemain/time*value;}//if//剩余时间可以做一份完整的试卷else{nRemain-=time;*pMaxValue+=value;}//else++index;}//while/*for(inti=0;i<nPapers;++i){printf("时间:%d价值:%d性价比:%lf\n&q