正文

钱能的《C++程序设计教程》序列四:chapter4第二部分2005-07-21 12:41:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/3053.html

分享到:

因为字数限制,进行分割。
二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本)
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;
}

阅读(3394) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册