第四周作业 (Part 1)

                                                                                                             

1.完成课本每一个编程题。要求先画出流程算法图或N-S图,然后编程实现,有可能的话使用两种以上方法;

2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)

3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。

4.在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度。

5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。

                                                   作业一

习题五

  求自然对数e的近似值,误差小于10^-6  (参考光荣榜同学的算法)

#include <iostream>  
  
using namespace std;  
  
int main()  
{  
    int i=0;  
    double value=1,fact=1;  
    while (fact>=10e-6)    //当循环
    {  
        i++;  
        fact=fact/i;  
        value+=fact;  
    }  
    cout << "e = "<<value<<endl;  
    return 0;  
}  

 输出:



习题六

#include <iostream>  
  
using namespace std;  
  
int main()  
{  
   long double pi=1.0;
   double flag=-1.0;
   for(int i=3;1.0/i>=1e-6;i+=2)
   {
	   pi+=flag/i;
	   flag=-flag;
   }
   cout<<"圆周率的近似值为:"<<4*pi<<endl;
   
    return 0;  
}  

输出:



习题七

#include<iostream>
using namespace std;
int main()
{
	int num;
	cout<<"输入一个整数:"<<endl;
	cin>>num;
	if(num<=10)
		cout<<num<<" is less then 10 "<<endl;
	else if(num<=100)
		cout<<num<<" is 10 to 100 "<<endl;
	else if(num<=1000)
		cout<<num<<" is 100 to 1000"<<endl;
	else
		cout<<num<<" is 1000 to more"<<endl;
return 0;
}

输出:



习题八

/*******************************
   ****   输出图形     ****
********************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int i,j,k;
    for(i=7;i>=1;i-=2)
	{
		for(k=i;k>0;k--)
			cout<<' ';

		for(j=8-i;j>0;j--)
		{
			cout<<"* ";
		}
		cout<<endl;

	}
	for(i=5;i>=1;i-=2)

	{
		for(k=8-i;k>0;k--)
			cout<<' ';
		for(j=i;j>0;j--)
		{
			cout<<"* ";
		}
		cout<<endl;
	}


	
	return 0;
}

输出:


习题九

#include <iostream>  
  
using namespace std;  
  
int main()  
{  
  int sum=0,n;
  for(n=1; ;n++)       //分号不能省略
  {
	  sum+=n*n;
	  if(sum>=1000)      //if控制跳出循环
		  break;
  }
  sum-=n*n;
  cout<<"满足“1^2+2^2+3^2+…+n^2<=1000”的最大n值为"<<n-1<<endl;
    return 0;  
}  

输出:


习题十    白痴的陌生人被富翁骗走多少钱?

#include <iostream>  
  
using namespace std;  
  
int main()  
{  
  double day=0.01, stranger=0.0,millionaire=10.0;   //后面两个变量分别表示陌生人和富翁得到的钱数
  for(int i=1;i<=30;i++)
  {
	  stranger+=day;
	  day*=2;
  }
  stranger/=10000.0;      //以万元为单位
  millionaire*=30;
  cout<<"这一个月中富翁给了陌生人"<<stranger<<"万元"<<endl
	  <<"陌生人给了富翁"<<millionaire<<"万元"<<endl;


    return 0;  
}  

输出:





                                                   作业二

百钱百鸡

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
   
	int a,b,c;
	for(a=0;a<=20;a++)    //100/5=20.故鸡翁不能超过20
	for(b=0;b<=33;b++)    //100/3约为33,故鸡母不能超过33
	for(c=0;c<=99;c+=3)   //雏鸡最小数量为3,最大不能超过99
	{	
		if(5*a+3*b+c/3.0==100&&a+b+c==100)
		

	

	cout<<"鸡翁="<<a<<"\t\t"<<"鸡母="<<b<<"\t\t"<<"雏鸡="<<c<<"\t\t"<<endl;
}
		return 0;
	}

输出:


调试了一下,终于可以显示“第几种情况”这句话

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
     
    int a,b,c,n;  
	n=0;       //这个是关键,要赋为0 
    for(a=0;a<=20;a++)    //100/5=20.故鸡翁不能超过20  
	{
		for(b=0;b<=33;b++)    //100/3约为33,故鸡母不能超过33  
    
		{
			for(c=0;c<=99;c+=3)   //雏鸡最小数量为3,最大不能超过99  
       
			{
				if(5*a+3*b+c/3.0==100&&a+b+c==100)  
				{
  
           n++
     cout<<"第"<<n<<"种情况"<<endl;
     cout<<"鸡翁="<<a<<"\t\t"<<"鸡母="<<b<<"\t\t"<<"雏鸡="<<c<<"\t\t"<<endl;
	 cout<<"\a";  //最近喜欢用这个响铃的语句
				}
			}
		}
  
    } 
	return 0;
}

输出:


作业三      (参考光荣榜的)

#include<iostream>  
using namespace std;  
int main()  
{  
    long int a,i;  
    int k=0,h,m=0;  
    cout<<"输入一个整型数:";  
    cin>>a;  
    for(i=10;;i=i*10)     //分号不能省略
    {  
        k++;  
        if(a<i)  
            break;  
    }  
    cout<<"位数:";  
    cout<<k<<endl;  
    cout<<"输出各位数值:";  
    while(i>1)  
    {  
        i=i/10;  
        h=a/i;  
        a=a%i;  
        m+=h;  
        cout<<h<<' ';  
      
    }  
    cout<<endl;  
    cout<<"各个位的数值和:"<<m<<endl;  
    return 0;  

}  

输出:


作业四

/*********************************
** 求任意点所在位置的建筑物高度**
**********************************/
#include<iostream>  
using namespace std;  
  
int main()  
{  
    double x,y;  
    cout<<"请输入x的值"<<endl;  
    cin>>x;  
    cout<<"请输入y的值"<<endl;  
    cin>>y;  
    if((x-2)*(x-2)+(y-2)*(y-2)<=1   
        ||(x+2)*(x+2)+(y-2)*(y-2)<=1  
        ||(x+2)*(x+2)+(y+2)*(y+2)<=1  
        ||(x-2)*(x-2)+(y+2)*(y+2)<=1)     //判断输入的点是否落在四个圆柱的范围内
    cout<<"该点处的建筑物高度为10米"<<endl;  
  
    else  
        cout<<"该点处的建筑物的高度为0米"<<endl;  
  
    return 0;  

}  

输出:

  


 作业五  求1!+2!+...+n!之和

/*******************************
****  求1!+2!+3!+....+n!之和****
********************************/
#include<iostream>
using namespace std;
int main()
{
	int sum,fact,i,j,n;
	sum=0;
	cout<<"输入一个整数:"<<endl;
	cin>>n;
	for(i=1;i<=n;i++)                   
	{
		fact=1;            //累乘变量fact初值赋为1 
		for(j=1;j<=i;j++)         
			fact*=j;       //fact=fact*j  
		sum+=fact;           //sum+sum=fact    
	}
	cout<<"sum="<<sum<<endl;
	return 0;
}

输出:


期待 part 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值