西北工业 算法设计与分析B卷 参考 答案

上传人:w**** 文档编号:99175509 上传时间:2019-09-17 格式:DOC 页数:5 大小:69KB
返回 下载 相关 举报
西北工业 算法设计与分析B卷 参考 答案_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《西北工业 算法设计与分析B卷 参考 答案》由会员分享,可在线阅读,更多相关《西北工业 算法设计与分析B卷 参考 答案(5页珍藏版)》请在金锄头文库上搜索。

1、180 算法设计与分析西北工业大学网络教育学院2019年10月大作业学习中心: 课程名称: 算法设计与分析 考试时间 120分钟 考试形式:大作业 A卷 B卷 学号姓名考试日期 年 月 日编程题(C、JAVA、C+等均可)(每小题50分,共100分)1医院有A、B、C、D、E、F、G七位大夫,在一星期内(星期一至星期天)每人要轮流值班一天。现在已知: A大夫比C大夫晚一天值班; D大夫比E大夫晚二天值班; B大夫比G大夫早三天值班; F大夫的值班日在B和C大夫的中间,且是星期四;请确定每天究竟是哪位大夫值班?并用计算机实现。JAVA实现的具体代码如下:import java.util.Arra

2、yList;public class Hospital public static void main(String args) ArrayListlist=new ArrayList();list.add(sun);list.add(mon);list.add(tus);list.add(wed);list.add(thu);list.add(fri);list.add(sat); int a,b,c,d,e,f,g,loop; /定义整形变量 char ch=A; /定义字符变量 String day = null; f=list.indexOf(thu); /按照题意,F医生是星期四值班

3、 for(a=list.indexOf(sun);a=list.indexOf(sat);a+) /需要逐个检查A医生星期几符合条件 if(a!=f) /A医生值班日子不应该与F医生相同 for(b=list.indexOf(sun);bb) /B医生值班日子不应该与A医生相同,且F在B之后 for(c=list.indexOf(sun);c=list.indexOf(sat);c+) /逐个检查C医生星期几符合条件 if(c!=a)&(c!=b)&(c!=f)&(a=c+1)&(fc) /C医生值班日子不应该与A,B,F医生相同,且A比C晚一天 for(d=list.indexOf(sun)

4、;d=list.indexOf(sat);d+) /逐个检查D医生星期几符合条件 if(d!=a)&(d!=b)&(d!=c)&(d!=f)&(c=d+3) /D医生值班日子不应该与A,B,C,F医生相同,且C与D之后3天 for(e=list.indexOf(sun);e=list.indexOf(sat);e+) /逐个检查E医生星期几符合条件 if(e!=a)&(e!=b)&(e!=c)&(e!=d)&(e!=f)&(d=e+2) /E值班不应该与A,B,C,D,E,F相同,且E与D前2天 for(g=list.indexOf(sun);g=list.indexOf(sat);g+) /

5、逐个检查G医生条件 if(g!=a)&(g!=b)&(g!=c)&(g!=d)&(g!=e)&(g!=f)&(g=b+2) /G值班不应该与A,B,C,D,E,F相同,且G与B后2天 /符合以上条件才能执行以下工作 for(loop=0;loop7;loop+) System.out.print(Doctor+(char)(ch+loop)+:); switch(loop+1) case 1:day=list.get(a);break; case 2:day=list.get(b);break; case 3:day=list.get(c);break; case 4:day=list.get

6、(d);break; case 5:day=list.get(e);break; case 6:day=list.get(f);break; case 7:day=list.get(g);break; switch(day) case sun:System.out.println(Sunday);break; case mon:System.out.println(Monday);break; case tus:System.out.println(Thusday);break; case wed:System.out.println(Wednesday);break; case thu:Sy

7、stem.out.println(Thurday);break; case fri:System.out.println(Friday);break; case sat:System.out.println(Saturday);break; 程序运行结果如下:2编写一个函数,输入n为偶数时,调用函数求1/2+1/4+.+1/n,当输入n为奇数时,调用函数求1/1+1/3+.+1/n。(利用指针函数)JAVA实现的具体代码如下:public class Number public static double evenOrodd(int n) double a = 0;double i=n%2;if (i=0) i=2;while (i=n) a=a+(double)(1/i);i=i+2;return a;public static void main(String args) System.out.println(n=100时,结果=+evenOrodd(100);System.out.println(n=99时,结果=+evenOrodd(99);代码运行结果如下:注:学生必须在答题纸上答题,否则没有成绩。 第 5 页 共 5 页

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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