首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。 【分析问题】 将n枚硬币分成相等的两部分: (1)当n为偶数时,将
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。 【分析问题】 将n枚硬币分成相等的两部分: (1)当n为偶数时,将
admin
2018-09-03
52
问题
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。
【说明】
假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。
【分析问题】
将n枚硬币分成相等的两部分:
(1)当n为偶数时,将前后两部分,即1…n/2和,n/2+1…0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币:
(2)当n为奇数时,将前后两部分,即1…(n-1)/2和(n+1)/2+1…0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第(n+1)/2枚硬币是假币。
【C代码】
下面是算法的C语言实现,其中:
coins[]:硬币数组
first,last:当前考虑的硬币数组中的第一个和最后一个下标
#include<stdio.h>
int getCounterfeitCoin(int coins[],int first,int last)
{
int firstSum=0,lastSum=0;
inti;
If(first==last-1)(/*只剩两枚硬币*/
if(coins[first]<coins[last])
return first;
return last,
}
if((last-first+1)%2==0)(/*偶数枚硬币*/
for(i=first,i<(1);i++){
firstSum+=coins
,
}
for(i=first+(last-first)/2+1;i<last+1,i++){
lastSum+=coins
,
}
if(2){
Return getCounterfeitCoin(coins,first,first+(last-first)/2;)
}else{
Return getCounterfeitCoin(coins,first+(last-first)/2+1,last,)
}
}
else{/*奇数枚硬币*/
For(i=first;i<first+(last-first)/2;i++){
firstSum+=coins
;
}
For(i=first+(last-first)/2+1;i<last+1;i++){
lastSum+=coins
;
}
If(firstSum<lastSum){
return getCounterfeitCoin(coins,first,first+(last-first)/2-1);
}else if(firstSum>lastSum){
return getCounterfeitCoin(coins,first+(last-first)/2-1,last);
}else{
Return(3)
}
}
}
若输入的硬币数为30,则最少的比较次数为( ),最多的比较次数为( )。
选项
答案
2、4
解析
转载请注明原文地址:https://www.kaotiyun.com/show/vzxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
Samba的工作原理是:让(1)和NetBIOS这两种协议运行于TCP/IP通信协议之上,且通过Windows的(2)协议让用户的Linux计算机可以在Windows的网络邻居上被看到。Samba服务器配置工具是用来管理Samba共享、用户及基本服
光接入网(OAN)由ONU、ODN和OLT等三大部分组成。请将以下所提供的网络设备的序号填写到如图3-6所示的网络结构图中(1)~(5)空缺处对应的位置。【供选择的设备】①ONU②OLT③光分路器④光收发器⑤
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
指出上述解决方案存在什么问题?需要增加什么设备?如何连接?若在该局域网实现VLAN,路由器将起什么作用?
请回答以下有关组网的问题1~4。【说明】设有A、B、C、D4台主机都处在同一个物理网络中,A主机的IP地址是192.155.12.112,B主机的IP地址是192.155.12.120,C主机的IP地址是192.155.12.176,D
阅读以下说明,回答问题1至问题3。【说明】Linux环境下L2TP的配置过程如下:①从http://www.12tpd.org/download.html上下载12tpd-0.69.tar.gz软件包。②将12tpd-0.69.tar
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
根据本题所说明的需求示意图,如图3所示,回答问题。某校园中,有A、B、C、D、E、F和C类就用,其中应用C属于中央校区局域网,应用E和F属于北校区局域网,南校区局域网则有应用B和C两类应用,而A和D包括本校园网的全部应用。现已完成部分需求示意图的工作。
请阅读以下说明和Socfort程序,将应填(n)处的字句写在对应栏内。网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。以下是一个简单的客户机程序(服务器程序略),其工作过程非常简单:客
阅读以下说明,回答问题1~3,将答案填入对应的解答栏内。网络地址转换(NAT)的主要目的是解决IP地址短缺问题以及实现TCP负载均衡等。在图4-1的设计方案中,与Internet连接的路由器采用网络地址转换。某学校通过专线上网,申请的
随机试题
我国处在社会主义初级阶段的依据是
下列各句中,没有语病的一句是()
女性28岁,妊娠性高血压。用硫酸镁注射降压,突然血压过低,6.67/4kPa(50/30mmHg)。应当立即给静脉注射哪种药物
以血清肌酐法制订个体化给药方案的依据是
正式导游证与临时导游证的主要区别是()。
因产品存在缺陷造成损害要求赔偿的请求权,一般在造成损害的缺陷产品交付最初消费者满()丧失。
知青
Whatisthemainpurposeofthetalk?
Therearetwobasicsortsofvisualperspective—aerialperspectiveandlinearperspective.Aerialperspective—and"aerial"just
A、Twelvecookiesweregiventothem.B、Thebakerwasnotabletomakethecookies.C、Thecookiestastemuchbetterthanshehad
最新回复
(
0
)