您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > 北大计算概论作业2及答案
一、公司职员分为经理:工资代码为1,每周拿固定工资;计时工:工资代码为2,40小时之内固定小时工资,40小时之外的工资按原工资的1.5倍;佣金工:工资代码为3,250美元的基本工资加每周月销售额的5.7%;计件工:工资代码为4,每生产一件产品发固定的工资。要求:1、事先不知道员工的人数,因此由用户决定是否停止计算。2、由用户输入计算每一个员工工资时需要的数据:例如:在计算计时工的工资时,需要提问:本周工作多少小时?公司每小时付给计时工的工资是多少?//-------------------------------------------------编写程序,计算每个员工的一周的工资。二、编写一个程序,输出由A,B,C,D,E五个字符组成的全排列三、费马数公式:12Fn2n+=(其中n为非负整数)注:因为不能编辑指数形式,故解释如下:第2个2是第一个2的指数,n是第2个2的指数。编写程序,输出前n个费马数(F0...Fn),不使用指数函数,由循环实现。n由用户输入。此题提交ACM,题号2869思考题、验证极限当n-无穷大时,x/pow(a,n)-0(其中x为任意常数,a为大于1的常数)既:给定任意一个e0,(设:1E-5)总能找到一个N,当nN时,|x/pow(a,n)|e说明:x,a为双精度,N为整数。此题提交到ACM,题号3175。一、公司职员分为经理:工资代码为1,每周拿固定工资;计时工:工资代码为2,40小时之内固定小时工资,40小时之外的工资按原工资的1.5倍;佣金工:工资代码为3,250美元的基本工资加每周月销售额的5.7%;计件工:工资代码为4,每生产一件产品发固定的工资。要求:1、事先不知道员工的人数,因此由用户决定是否停止计算。2、由用户输入计算每一个员工工资时需要的数据:例如:在计算计时工的工资时,需要提问:本周工作多少小时?公司每小时付给计时工的工资是多少?//-------------------------------------------------编写程序,计算每个员工的一周的工资。voidf1(){intchoice=1;while(1){cout请输入工资代码,输入0退出:;cinchoice;if(choice==0)break;doublesalary;if(choice==1)//经理,每周拿固定工资;{cout请输入每周工资:;cinsalary;}if(choice==2)//计时工,40小时之内外有别{doublesalaryPerHour;doubletime;cout请输入每小时工资:;cinsalaryPerHour;cout请输入本周工作时间:;cintime;if(time=40)salary=time*salaryPerHour;elsesalary=((time-40)*1.5+40)*salaryPerHour;}if(choice==3)//佣金工:基本工资加每周月销售额的5.7%;{doublesale;cout请输入销售额:;cinsale;salary=250+sale*5.7/100;}if(choice==4)//计件工,每生产一件产品发固定的工资。{doublesalaryPerOne;doubleamount;cout请输入每件产品的工资:;cinsalaryPerOne;cout请输入生产产品的数量:;cinamount;salary=amount*salaryPerOne;}if(choice1||choice4)continue;cout本周工资是:salaryendl;}system(pause);//暂停}二、编写一个程序,输出由A,B,C,D,E五个字符组成的全排列voidf1(){chari,j,k,m,n;for(i='A';i='E';i++)for(j='A';j='E';j++){if(i==j)continue;for(k='A';k='E';k++){if(k==i||k==j)continue;for(m='A';m='E';m++){if(m==i||m==j||m==k)continue;for(n='A';n='E';n++){if(n==i||n==j||n==k||n==m)continue;coutijkmn;}}}}}三、费马数公式:12Fn2n+=(其中n为非负整数)注:因为不能编辑指数形式,故解释如下:第2个2是第一个2的指数,n是第2个2的指数。编写程序,输出前n个费马数(F0...Fn),不使用指数函数,由循环实现。n由用户输入。此题提交ACM,题号2869voidf3(){intn,i,j;doublenum1=1,num2=2;couthowmany?;cinn;cout3endl;//如果没有这部分,测试数据是0,则不能ACif(n0){for(i=1;i=n;i++){num1=num1*2;num2=2;for(j=1;jnum1;j++){num2*=2;}coutsetprecision(20)(num2+1)endl;}}return0;}另一种做法f3(){doublelast=3,now=last;for(inti=0;i5;i++){coutlastendl;last=(last-1)*(last-1)+1;}return0;}四、验证极限当n-无穷大时,x/pow(a,n)-0(其中x为任意常数,a为大于1的常数)既:给定任意一个e0,(设:1E-5)总能找到一个N,当nN时,|x/pow(a,n)|e说明:x,a为双精度,N为整数。此题提交到ACM,题号3175。voidf4(){intN=0;doublea,x,num;coutentertwonumberx,a(a1),endl;cinxa;num=x/a;while(fabs(num)=1e-5){num=num/a;N++;}coutNendl;}
本文标题:北大计算概论作业2及答案
链接地址:https://www.777doc.com/doc-10661552 .html