因为字数限制,进行分割。 二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本) 4.02 #include <iostream> using namespace std; void main() { int i,temp1=1,temp2=0; for(i=1;i<=15;i++) { temp1*=i; temp2+=temp1; } cout<<"所求的值为:"<<temp2<<endl; } 4.03.这一题是求水仙花数 #include <iostream> using namespace std; void main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i%10;//个位 b=(i/10)%10;//十位 c=i/100;//百位 if(a*a*a+b*b*b+c*c*c==i)cout<<i<<"是水仙花数\n"; } } 4.04这一题是求完数 #include <iostream> using namespace std; void main() { int i,j,temp=0; for(i=1;i<1000;i++) { for(j=1;j<=i/2;j++) if(i%j==0)temp+=j; if(temp==i)cout<<i<<"是完数\n"; temp=0; } } 4.05 #include <iostream> using namespace std; void main() { int i,n; cout<<"降落的次数\n"; cin>>n; double temp1=100,temp2=100; for(i=2;i<=n;i++) { temp2/=2; temp1+=temp2*2; } cout<<"落"<<n<<"次的总路程为:"<<temp1<<endl; cout<<"落"<<n<<"次后反弹的高度为:"<<temp2/2<<endl; } 4.06 #include<iostream> using namespace std; void main() { int i,j,temp; for(i=1;i++;)//其实可以不需要从第一个桃子开始尝试 { temp=i; for(j=1;j<10;j++) { temp=temp/2-1; if(temp<=0)break; } if(temp==1) { cout<<"第一天公摘桃子:"<<i<<endl; break; } } } 这一题看了 一下网络版的答案,发现人家是逆推过来的,好像比较简单,如下 #include <iostream.h> void main() { int peachs=1; for(int i=1; i<10; i++) peachs=(peachs+1)*2; cout <<"第一天共摘下" <<peachs <<"个桃子.\n"; } 4.07一般而言,使用迭代法的程序的循环一般采用do-while形式。 #include<iostream> #include<math.h> using namespace std; void main() { double Xn=1,Xm=1,a; cout<<"请输入一个的数值:"; cin>>a; do { Xn=Xm; Xm=(Xn+a/Xn)/2; } while(fabs(Xm-Xn)>=1e-7); cout<<"这个值的平方根是:"<<Xm<<endl; }

评论