基本控制结构程序设计习题(编辑修改稿)内容摘要:

是结果 第 二 章 基本控制结构程序设计习题 7 cout请输入正整数 n: endl。 cinn。 if(n1){ cout输入错误。 endl。 return 1。 } result=1。 for(i=2。 i=n。 i++){ jch*=i。 //jch是 i的阶乘 ,注意 n!=n*(n1)!这样可少一层循环 result+=jch。 } coutresultendl。 return 0。 } 猴子吃桃问题:猴子摘下若干个桃子,第一天吃了桃子的一半多一个 ,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子共摘了几个桃子。 解: 采用递推法。 从最后一天逆推到第一天, 9 次循环。 include iostream using namespace std。 const int day=10。 int main(){ int i,x=1。 //最后一天只有一个 for(i=1。 iday。 i++) x=(x+1)*2。 //从一天前推到九天前 cout开始共有桃子 x个。 \n。 return 0。 } 从键盘输 入一组非 0 整数,以输入 0 标志结束,求这组整数的平均值,并统计其中 正数和负数 的个数。 解: 将 这组整数 放在整型数组中,一边输入一边求和及统计 正数和负数 的个数,平均数由和除以整数数量取得。 include fstream include iostream using namespace std。 int main(){ int stem[256],sum=0,pnum=0,nnum=0,i=0。 cout从键盘输入一组非 0整数,以输入 0标志结束 :endl。 cinstem[i]。 while(stem[i]!=0){ sum+=stem[i]。 //求和 if(stem[i]0) pnum++。 //正数数量 else nnum++。 //负数数量 i++。 第 二 章 基本控制结构程序设计习题 8 cinstem[i]。 } if(!i) cout0个数 endl。 else { cout平均值= (double)sum/(pnum+nnum)endl。 //平均值习惯不用整数 cout正数个数= pnumendl。 cout负数个 数= nnumendl。 } return 0。 } 编程找出 1 500 之中满足除以 3 余 2,除以 5 余 3,除以 7 余 2 的整数。 解:中国古代数学问题(韩信点兵),采用穷举法。 注意三个条件同时成立用 amp。 amp。 include iostream using namespace std。 int main(){ int i。 for(i=1。 i=500。 i++) if((i%3==2)amp。 amp。 (i%5==3)amp。 amp。 (i%7==2)) coutiendl。 return 0。 } 编程求 1000之内的所有完全数。 所谓完全数指的是一个数恰好等于它的所有因子和。 例如 6=1+2+3,就是一个完全数。 解: 采用穷举法。 两重循环,外层是从 1 到 999 依次处理,内层是求该数的所有因子的和,并判断是否等于该数。 include iostream using namespace std。 int main(){ int i,a,sum_yz。 //sum_yz是 a的因子和 for(a=1。 a1000。 a++){ sum_yz=0。 for(i=1。 ia。 i++) if (a%i==0) sum_yz+=i。 if (a==sum_yz) coutaendl。 } return 0。 } 将 100 元换成用 10 元、 5 元和 1 元的组合,共有多少种组合方法。 解: 采用穷举法。 考虑 10 元最多 10 张, 5 元最多 20 张,余下是 1 元。 include iostream using namespace std。 int main(){ int i,j,k,count=0。 第 二 章 基本控制结构程序设计习题 9 for(i=0。 i=10。 i++)//i是 10元张数, j是 5元张数, k是 1元张数 for(j=0。 j=20。 j++){ k=10010*i5*j。 if(k=0){ couti39。 \t39。 j39。 \t39。 kendl。 count++。 } } coutcountendl。 return 0。 } 利用反正切展开计算 的近似值,要求误差 105,公式如下:  753)( 753 xxxxxa r ct g 令 x=1,可计算出 /4 的近似值。 解:采用递推法。 初看每一项的递推通式不易写出,但每一项 全看作奇数项, 而偶数项全为零, 则很容易 写出 :第 1 项为 x,第 3 项为第 1 项乘以 x的平方除以项序号 3乘以 1,其余类推。 同时和的误差 小于最后一项的绝对值。 includeiostream includecmath using namespace std。 const double e=1e5。 int main(){ double x,a,sum。 int i=3。 cout请输入正 切 值: endl。 cinx。 a=x。 sum=x。 do{ a*=x*x*(1)。 sum+=a/i。 i+=2。 }while(fabs(a/i)e)。 coutarctg(x)=sumendl。 return 0。 } 用迭代法求方程 x2+10cosx=0 的根,误差限为 105。 迭代公式如下: nnnnnnn xx xxxxx s in102 )c oss in(1021  第 二 章 基本控制结构程序设计习题 10 解:迭代法也是用循环语句实现 , 数学 上 includeiostream includecmath using namespace std。 const double e=1e5。 int main(){ double x0,x1。 int n=0。 cout输入初始近似值: endl。 cinx1。 do{ x0=x1。 x1=(x0*x010*(x0*sin(x0)+cos(x0)))/(2*x010*sin(x0))。 //x0是上次算出的结果, x1用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。