作业3

本文包含了一系列编程实验作业,涉及算法实现、数学问题求解、数值计算等方面。具体任务包括解决“百钱百鸡”问题、计算数字位数及其总和、判断点的位置并给出高度等,展示了多种编程技巧。
  实验作业

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

(5)

#include<iostream>  
using namespace std;  
  
int main()  
{  
    double e=1.0,c=1.0;  
    int a;  
    for(a=1;c<10e6;a++)  
    {  
        c*=a;  
        e+=1/c;  
    }  
    cout<<"自然对数为:"<<e<<endl;  
  
    return 0;  
}  

(6)

#include <iostream>  
using namespace std;  
  
int main()  
{  
    int a;  
    double Pi,b;  
    b=1;  
    Pi=0;  
    for(a=1;a<10e6;a+=2)  
    {  
       Pi+=4*(double)1/a*b;  
       b*=-1;  
         
    }  
    cout<<"圆周率为:"<<Pi<<endl;  
  
    return 0;  
}  

(7)

#include<iostream>  
using namespace std;  
  
int main()  
{  
    float a;   
    cout<<"请输入一个数:"<<endl;  
    cin>>a;  
    if(a<10)  
      cout<<a<<"小于10"<<endl;  
    else  
     if(10<a&&a<100)  
        cout<<a<<"在10 到100间"<<endl;  
    else  
      if(100<a&&a<1000)  
      cout<<a<<"在 100 到 1000间"<<endl;  
    else  
       if(a>=1000)  
        cout<<a<<"大于或等于1000"<<endl;  
       
       return 0;  
}  

(8)

#include<iostream>  
using namespace std;  
  
int main()  
{  
        cout<<"       *"<<endl;
	cout<<"     * * *"<<endl;
	cout<<"   * * * * *"<<endl;
	cout<<" * * * * * * *"<<endl;
	cout<<"   * * * * *"<<endl;
	cout<<"     * * *"<<endl;
	cout<<"       *"<<endl;

       return 0;  
}  

(9)

#include <iostream>  
using namespace std;  
  
int main()  
{  
    int n,s;  
    n=1;  
    s=0;  
    do  
    {  
        n++;  
        s+=n*n;  
    }while(s<=1000);  
    cout<<"n="<<n<<endl;  
  
  
    return 0;  
}  

(10)

#include<iostream>  
using namespace std;  
  
  
int main()  
{  
    double a=100000,b=0.01,d=1,k=0,n=0;  
    do  
    {  
        k=k+a;  
        n=n+b;  
        b=b*2;  
        d++;  
    }while(d<=30);  
    cout<<"陌生人给了百万富翁:"<<k<<"元"<<endl  
        <<"百万富翁给了陌生人:"<<n<<"元"<<endl;  
  
  
    return 0;  
}  

(11)

#include <iostream>  
using namespace std;  
int main()  
{  
  int i=1;  
  int t=1;  
  while(i<=9)  
  {  
      
    while(t<=i)  
    {  
      cout<<t<<"*"<<i<<"="<<i*t<<" ";  
      t++;  
    }  
    t=1;  
    cout<<endl;  
    i++;  
 }  
  return 0;  
}  

2

#include<iostream> 
#include<iomanip> 
using namespace std;  
  
int main()  
{  
    int i,j,k;  
    for(i=0;i<=20;i++)  //100元最多20只鸡翁
    for(j=0;j<=33;j++)  //100元最多33只鸡母
    for(k=0;k<=99;k+=3)  //100元可买很多鸡雏
    if(5*i+3*j+k/3==100&&i+j+k==100)  
        cout<<"鸡翁数量为:"<<i<<"个"<<setw(16)
            <<"鸡母数量为:"<<j<<"个"<<setw(16)
            <<"鸡雏数量为:"<<k<<"个"<<endl;  
      
    return 0;  
}  

 3

#include<iostream>  
using namespace std;  
int main()  
{   int i,a,b,c,d,f;  
    cout<<"请输入一个整数:"<<endl;  
    cin>>a;  
    c=a;  
    b=0;  
    f=0;  
    for(i=0;a>0;i++)       
    {   
        a/=10;  
        b++;  
    }  
    cout<<"它有"<<b<<"个数"<<endl;  
    for(d=0;d<b;d++)  
    {     
        f+=c%10;  
        c=c/10;  
    }  
    cout<<"它各个位数上的和为:"<<f<<endl;  
return 0;  
  
}  

4

#include<iostream>  
#include<cmath>  
using namespace std;  
  
int main()  
{   
    double x,y,D;  
    cout<<"横坐标:";  
    cin>>x;  
    cout<<"纵坐标:";  
    cin>>y;  
    if(x<0)  
        x=-x;  
    if(y<0)  
        y=-y;  
    D=sqrt((x-2)*(x-2)+(y-2)*(y-2));  
    if(D<1)  
        cout<<"塔高为10米"<<endl;  
    else  
        cout<<"塔高为0米"<<endl;  
  
  
    return 0;  
}  

5

(1)

#include<iostream>  
using namespace std;  
  
int main()  
{  
    double a,b,n,s=0;  
    cout<<"请输入一个整数:";  
    cin>>n;  
    a=1;  
    b=1;  
    while(b<=n)  
    {  
        a=a*b;  
        s+=a;  
        b++;  
    }  
    cout<<"s="<<s<<endl;  
  
    return 0;  
}  
(2)
#include<iostream>
using namespace std;
int main()
{
	double sum,fact,n,i,d;
	sum=0;
	cout<<"请输入一个整数:"<<endl;
	cin>>n;
	for(d=1;d<=n;d++)
	{
		fact=1;
	    for(i=1;i<=d;i++)
		fact*=i;
	    sum+=fact;
	}
	cout<<"s="<<sum<<endl;

	return 0;
}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值