作业(第四周)

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

6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?

7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为

    s[5]=1+11+111+1111+11111

8.打印九九乘法表。

9.两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。

10.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。

第一题

习题5

#include<iostream>
using namespace std;

int main()
{
	long double temp=1.0,e=1.0;
	long double f=1;
	for(int i=1;;i++)
	{
		f *= i;
		e += 1.0/f;
		if((e-temp)<1e-6)
			break;
		temp=e;
	}
	cout<<"自然对数e的近似值为:"<<e<<endl;
	return 0;
}

习题6

#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<<"圆周率pi的近似值为:"<<4*pi<<endl;
	return 0;
}

习题7

#include<iostream>
using namespace std;

int main()
{
	int number;
	cout<<"请输入一个整数:";
	cin>>number;
	if(number<10)
		cout<<number<<"is less than 10.";
	else if(number <= 99)
		cout<<number<<"is 10 to 99.";
	else if(number <= 999)
		cout<<number<<"is 100 to 999.";
	else
		cout<<number<<"is more than 1000.";
	cout<<endl;
	return 0;
}
习题8

#include<iostream>
using namespace std;

int main()
{
	int i,j,k;
	for(i=0;i<=3; i++)
	{
		for(j=0;j<6-2*i;j++)
			cout<<"";
		for(k=0;k<2 * i+1;k++)
			cout<<" *";
		cout<<endl;
	}
	
	for(i=0;i<=2;i++)
	{
        for(j=0;j<2+2*i;j++)
			cout<<"";
		for(k=0;k<5-2*i;k++)
			cout<<" *";
		cout<<endl;
	}
	return 0;
}

习题9

#include<iostream>
using namespace std;

int main()
{
	int sum=0,n;
	for(n=1;;n++){
		sum+=n*n;
		if(sum>=1000)
			break;
	}
	sum -= n*n;
	cout<<"满足\"1*1+2*2+3*3+ … +n*n<=1000\"的最大n值为"<<n-1<<endl
		<<"其和为:"<<sum<<endl;
	return 0;
}
习题10

#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<<"这一个月中陌生人给了百万富翁"<<millionaire<<"万元"<<endl
		<<"百万富翁给了陌生人"<<stranger<<"万元"<<endl;
	return 0;
}


第二题:


/***************************************
****     功能:求百钱百鸡问题      *****
***************************************/
#include<iostream>
using namespace std;
int main()
{
	int i=0;
	int a,b,c;   //a,b,c分别储存鸡翁,鸡母,鸡雏的数量
	double money;
	cout<<"鸡翁一只钱五,鸡母一只钱三,鸡雏三只钱一。"<<endl;
	cout<<"百钱买百鸡,问鸡翁、鸡母、鸡雏各几?"<<endl;
	for(a=0;a<=20;a++)//总共100钱,最多20只
	{
		for(b=0;b<34;b++) 
		{
			c=100-a-b;
			money=5*a+3*b+c/3.0;
		
			if(money==100)
			{
				i++;
				cout<<endl;
				cout<<"第"<<i<<"种情况"<<endl;
				cout<<"鸡翁的数量a="<<a<<endl;
				cout<<"鸡母的数量b="<<b<<endl;
				cout<<"鸡雏的数量c="<<c<<endl;
			
			}
		}
	}
	return 0;
}

结果如下:



第三题
//输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。

#include<iostream>
using namespace std ;

int main()
{
	int a, b, c =0 , d,temp, s = 0;
	cout<<"请输入一个整数";		//该数不能太大,不然会溢出
	cin>>a ;
	b = a;
	d = a;
	do 
	{
		a = a/10 ;
		c = c++;
	} while (a>0) ;
	cout <<"该数为"<<c<<"位数"<<endl<<endl;
	cout <<"该数"<<d<<"每个位上的数分别为";
	do
	{
        temp = b%10;
		b = b/10;
		s = s +temp;
		cout <<temp<<"\t";
	} while (b>0);
	cout<<endl;
	cout<<"该数每一位相加之和为:"<<s<<endl;

	

	return 0;
}


运行结果:

第四题

#include <iostream>
using namespace std;

int main()
{
	int i,j;
	for(i=1;i<=9;i++)
	{
		cout<<i;
	for(j=1;j<=9;j++)
	cout<<'\t'<<i<<"*"<<j<<"="<<i*j;
	cout<<endl;
	}
	return 0;
}



第五题
#include<iostream>
using namespace std;
int main()
{
	int a=1,b,s=0,n;
	cout<<"输入n的值:";
	cin>>n;
	for(b=1;b<=n;b++)
		a*=b;
	s+=a;
	cout<<"s=1!+2!+3!+...+n!的值为:"<<s<<endl;
	return 0;
}


第六题
#include<iostream>
using namespace std;
int main()
{
	int i,n;
	i=1,n=1;
	while(i<=9)
	{
		n+=1;
		n=2*n;
		i++;
	}
	cout<<"第十天总共摘了"<<n<<"个苹果"<<endl;
	return 0;
}


第七题
 #include<iostream>    
 #include<math.h>    
 using namespace std;    
        
 int main()    
 {
     int n,a,i,s1,S,Sn;    
     cout<<"计算s[n]=a+aa+aaa+aa...a(n个)的值"<<endl;    
     cout<<"请输入a的值"<<endl;    
     cin>>a;    
     cout<<"请输入n的值"<<endl;    
     cin>>n;    
     s1=0;    
     i=1;    
     Sn=0;    
     while(i<=n)
     {
         S=s1+a*pow(10,i-1);    
         Sn=S+Sn;    
         s1=S;    
         i++;    
     }    
     cout<<"S["<<n<<"]="<<Sn<<endl;    
     return 0;    
 } 




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值