第四周作业

n      实验作业

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阶乘),要求使用两种以上的方法。

首先做的是课本后面的题目

1.求自然对数的e的近似值
#include<iostream>
using namespace std;
int main()
{
	int i,j;  
    double e=1,s=1;  
    for(i=1;i<=10;i++)  
    {  
        for(j=1;j<=i;j++)  
        {  
            s*=j;  
        }  
        e+=1/s;  
        s=1;
	}  
    cout<<"e="<<e<<endl;
	return 0;
}

2,求圆周率π的近似值
#include<iostream>
#include<math.h>
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;
}

3.将输入的诗句按照类型分别显示出来
#include<iostream>
using namespace std;
int main()
{
	int a;
	cout<<"Please input a number:";
	cin>>a;
	if(a<10)
		cout<<a<<"是小于10"<<endl;
	else if(a<100)
		cout<<a<<"是10~100"<<endl;
	else if(a<1000)
		cout<<a<<"是100~1000"<<endl;
	else
		cout<<a<<"是大于1000"<<endl;
	return 0;
}

4.编一程序,输出图形
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int j,k;
    for(k=1; k<=4; k++)
    {
        for(j=1; j<=5-k; j++)
            cout<<setw(2)<<" ";
        for(j=1;j<=2*k-1;j++)
            cout<<setw(2)<<'*';
     cout<<endl;
     }
    for(k=1;k<=3;k++)
    {
        for(j=4;j>=4-k;j--)
            cout<<setw(2)<<" ";
        for(j=4;j>=2*k-2;j--)
            cout<<setw(2)<<'*';
        cout<<endl;
    }
return 0;
}


百钱百鸡问题
#include<iostream>  
using namespace std;  
int main()  
{  
    int a, b, c, p, q;  
    for(a=0;a<=20;a++)
    {  
        for(b=0;b<=33;b++)
        {  
            for(c=0;c<=100;c+=3)
            {  
        p=a+b+c;
        q=5*a+3*b+c/3;
        if(p==100 && q==100)
        {  
            cout<<"鸡翁为:"<<a<<"只"<<endl;
			cout<<"鸡母为:"<<b<<"只"<<endl;
			cout<<"鸡雏为:"<<c<<"只"<<endl;  
            cout<<"             "<<endl;
		}
			}
		}
	}
			return 0;
		}
编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int i=0, k=0, num, sum=0;
    cout<<"输入一个整数:"<<endl;
    cin>>num;
    while(num!=0)
    {
        k=num%10;
        sum+=k;
        cout<<k;
        i++;
        num /=10;
  
    }
    cout<<"该整数是: "<<i<<"位数字"<<endl;
    cout<<"该整数各个数位上数字之和:"<<sum<<endl;
	return 0;
}
在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    float x,y,s;
    cout<<"x=";
    cin>>x;
    cout<<"y=";
    cin>>y;
    if(x<0)
        x=-x;
    if(y<0)
        y=-y;    
    s=sqrt((x-2)*(x-2)+(y-2)*(y-2));
    if(s<=1)
        cout<<"平面坐标的高度为10"<<endl;
	else
        cout<<"平面坐标的高度为0"<<endl;
    return 0;
}
编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法
#include<iostream>
using namespace std;
int fac(int n)
{
	int result = 1;
    if(n<0)  return -1;
    else    if(n == 0)  return 1;
    while (n>0)
    {   result *= n;
        n--;
    }
    return result;
}
int main()
{
    int count=0,n;
    cout<<"请输入阶数:"<<endl;
    cin>>n;
    if(n==0||n==1)
        cout<<"result=1"<<endl;
    else
    {
        for(;n>=1;n--)
            count+=fac(n);
        cout<<"result="<<count<<endl;
    }
    return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值