您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > 北大计算概论作业1及答案
1、一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少个米?第10次反弹多高?(ACM题号:3142)2、用牛顿迭代方法求一个数number的平方根,输出根以及迭代次数。本题提交ACM,题号是2868.注意:迭代的中止条件是误差=1E6(10的负6次方)输入数据只考虑整数就可以了.输出的根精确到小数点后两位3、一个最简单的计算器.用户输入:(1)两个操作数(float),(2)一个四则运算符(char),(+,-,*,/),输出:运算结果.(不需要提交到ACM,交到课程网站)注:如果输入的运算符是'/',要检查第二操作数是不是为0.如果为0,则报错.用case语句完成.4、四名专家对四款车进行评论(不需要提交到ACM,交到课程网站)A:2号车是最好的B:4号车是最好的C:3号车不是最好的(注意:不是最好的)D:B说错了事实上,只有一款赛车是最好的,且只有一名专家说对了,其他3人都说错了。请编程输出最佳车的车号,以及哪位专家说对了。思考题:验证“歌德巴赫猜想”,即任意一个大于6的偶数均可表示成两个素数之和.(题号:3143),此题可以不做,助教不需要批改。1、一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少个米?第10次反弹多高?(ACM题号:3142)voidf1(){doubleh,m=0;inti;couthowheigh?;cinh;for(i=0;i10;i++){m=m+h;h=h/2;}coutm=mendl;couth=hendl;}2、用牛顿迭代方法求一个数number的平方根,输出根以及迭代次数。本题提交ACM,题号是2868.注意:迭代的中止条件是误差=1E6(10的负6次方)输入数据只考虑整数就可以了.输出的根精确到小数点后两位参考答案:voidf2(){doublex,x0,error;intnumber,count;coutPleaseenteraintegernumberendl;cinnumber;x=1.0;count=0;do{count++;x0=x;x=(x0+number/x0)/2;error=fabs(x-x0);}while(error1E-6);coutnumberendl;coutcountendl;coutsetiosflags(ios::fixed)//浮点数输出setprecision(2)xendl;//小数点后面2位}3、一个最简单的计算器.用户输入:(1)两个操作数(float),(2)一个四则运算符(char),(+,-,*,/),输出:运算结果.(不需要提交到ACM,交到课程网站)voidf4(){doublenum1,num2,result;charop;while(1){coutentertheexpress(giveetooperator--exit)endl;cinnum1opnum2;if(op==‘e')break;switch(op){case‘+':result=num1+num2;break;case‘-':result=num1-num2;break;case‘*':result=num1*num2;break;case‘/':\\除法运算要检查被0除if(num2==0){coutdividedby0\n;continue;}else{result=num1/num2;break;}default:coutoperatorisoutofrange;break;}coutTheresultisresultendl;}//while(1)}注:如果输入的运算符是'/',要检查第二操作数是不是为0.如果为0,则报错.用case语句完成.4、四名专家对四款车进行评论(不需要提交到ACM,交到课程网站)A:2号车是最好的B:4号车是最好的C:3号车不是最好的(注意:不是最好的)D:B说错了事实上,只有一款赛车是最好的,且只有一名专家说对了,其他3人都说错了。请编程输出最佳车的车号,以及哪位专家说对了。voidf4(){intA,B,C,D,best;for(best=1;best=4;best++)\\每辆车都可能最好{A=(best==2);B=(best==4);C=(best!=3);D=(best!=4);//下面的条件保证只有一个人说对了if((A&&!B&&!C&&!D)||(!A&&B&&!C&&!D)||(!A&&!B&&C&&!D)||(!A&&!B&&!C&&D)){cout最佳车车号是bestendl;if(A==1)coutA是对的endl;if(B==1)coutB是对的endl;if(C==1)coutC是对的endl;if(D==1)coutD是对的endl;}}}思考题:验证“歌德巴赫猜想”,即任意一个大于6的偶数均可表示成两个素数之和.(题号:3143),此题可以不做,助教不需要批改。voidf(){inti,n,x,y,f;cout输入一个大于6的正偶数\n;cinn;for(x=3;x=n/2;x+=2){f=1;//设立一个标志位,为1是素数,为0不是for(i=2;i=sqrt(x);i++){if(x%i==0){f=0;break;}}if(f==0)continue;y=n-x;for(i=2;i=sqrt(y);i++){if(y%i==0){f=0;break;}}if(f==1)coutn'='x'+'y;}}
本文标题:北大计算概论作业1及答案
链接地址:https://www.777doc.com/doc-10661551 .html