习题5
/***求e的近似值***/
#include <iostream>
using namespace std;
int main()
{
int i=0;
double sum=1,k=1;
while (k>=10e-6)
{
i++;
k=k/i;
sum+=k;
}
cout << "e = "<<sum<<endl;
return 0;
}
习题6
/***功能:求圆周率π的近似值***/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i;
float j;
double s=0;
for(i=1;i<=100000000;i++)
{
j=1.0/(2*i-1);
if(i/2==i/2.0)//判断i为奇数或偶数
s-=j;
else
s+=j;
}
cout<<"圆周率pi的近似值为: "<<setprecision(7)<<s*4<<endl;
return 0;
}
习题7
#include<iostream>
using namespace std;
int main()
{
int a;
cout<<"请输入一个数:"<<endl;
cin>>a;
if(a<10)
cout<<a<<"is less than 10.";
else if(a<=100)
cout<<a<<"is 10 to 100.";
else if(a<=1000)
cout<<a<<"is 100 to 1000.";
else
cout<<a<<"is more than 1000.";
cout<<endl;
return 0;
}
习题9
#include<iostream>
using namespace std;
int main()
{
int a,b,sum=0;
for(a=1;;a++)
{
b=a*a;
sum+=b;
if(sum>=1000)
break;
}
cout<<"满足条件的最大n值为"<<a-1<<endl;
return 0;
}
习题10
#include<iostream>
using namespace std;
int main()
{
double sum1=0,sum2=0.1,day=1; //**sum1为陌生人给百万富翁的钱,sum2为百万富翁给陌生人的钱**//
for(;day<=30;day++)
{
sum1+=100000; //以万元为单位
sum2*=2;
}
cout<<"陌生人给百万富翁:"<<std::fixed<<sum1<<"元"<<endl;
cout<<"百万富翁给了陌生人:"<<std::fixed<<sum2<<"元"<<endl;
return 0;
}
2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
for(a=0;a*5<=100;a++)
for(b=0;(a*5+b*3)<=100;b++)
{
c=100-a-b;
if((a*5+b*3+c/3==100)&&(c%3==0))
cout<<"鸡翁有"<<a<<"只"
<<"鸡母有"<<b<<"只"
<<"鸡皱有"<<c<<"只"<<endl;
}
return 0;
}
3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d=0;
cout<<"请输入一个整数: "<<endl;
cin>>a;
for(b=10;b<=a;b*=10)
{
if(a/b>1)
c=1;
d+=c;
}
cout<<"这是一个"<<d+1<<"位数"<<endl;
d=0;
for(b=b/10;b>=1;b=b/10)
{
c=a/b;
d+=c;
a%=b;
}
cout<<"各位数之和为:"<<d<<endl;
return 0;
}
4.在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度。
#include<iostream>
using namespace std;
int main()
{
float x,y;
cout<<"请输入点坐标的值,用空格隔开"<<endl;
cin>>x>>y;
if(x<0) //将所有坐标转换到第一象限
x=-x; //简化判断条件
if(y<0)
y=-y;
if((x-2)*(x-2)+(y-2)*(y-2)<=1)
cout<<"该点建筑高度为10米"<<endl;
else
cout<<"该点建筑高度为0米"<<endl;
return 0;
}
5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。
#include<iostream>
using namespace std;
int main()
{
int a,b,c,n,S=0;
cout<<"请输入你要计算的第n项?"<<endl;
cin>>n;
for(a=n;a>0;a--)
{
c=1;
for(b=a;b>=1;b--)
c*=b;
S+=c;
}
cout<<"级数的前"<<n<<"项之和为:"<<S<<endl;
return 0;
}
6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?
#include<iostream>
using namespace std;
int main()
{
int day=1,n=1;
for(;day<=9;day++)
{
n=2*(n+1);
}
cout<<"猴子共摘的苹果数为: "<<n<<endl;
return 0 ;
}
7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为
s[5]=1+11+111+1111+11111
//**功能:计算s[n]=a+aa+aaa+...的值 **//
#include<iostream>
using namespace std;
int main()
{
int a,b,n,s,i;
cout<<"请输入一个数:"<<endl;
cin>>a;
cout<<"请输入要计算的位数n:"<<endl;
cin>>n;
b=s=a;
for(i=1;i<n;i++)
{
a*=10;
b+=a; //c=aa,c=aaa,c=aaaa...
s+=b;
}
cout<<"s[n]="<<s<<endl;
return 0;
}
8.打印九九乘法表。
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
cout<<"九九乘法表: "<<endl;
for(a=1;a<=9;a++)
{
for(b=1;b<=a;b++)
{
c=a*b;
cout<<a<<"x"<<b<<"="<<c<<"\t";
}
cout<<endl;
}
return 0;
}