9、用公式求ex=1+x+x2/2!
+x3/3!
+…+xn/n!
。
n取20。
#include
usingnamespacestd;
intpow(intx,intn);
intf1(intn);
intmain(intargc,char*argv[])
{
intx,n;
doubleex=1;
cin>>x;
cin>>n;
for(inti=1;i<=n;i++)
ex+=pow(x,i)/(f1(i)*1.0);
cout<system("pause");
return0;
}
intf1(intn)
{
ints=1;
for(inti=2;i<=n;i++)
s*=i;
returns;
}
intpow(intx,intn)
{
ints=1;
for(inti=1;i<=n;i++)
s*=x;
returns;
}
10、假定f1=1,f2=1;fn=fn-1+fn-2。
输出前50项的值,且要求每行输出5个值
#include
#include
usingnamespacestd;
intf(intn)
{
intsum;
if(n<=2)
return1;
else
sum=f(n-1)+f(n-2);
returnsum;
cout<};
intmain()
{
inti,n;
cin>>n;
f(n);
for(i=1;i<=n;i++)
{cout<<"f("<
"<if(i%5==0)
{
cout<}
}
return0;
}
11、判断一个数是否为素数
方法1:
#include
#include
usingnamespacestd;
intmain()
{inti,n,k;
cout<<"请输入一个数:
"<cin>>n;
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>k)
cout<"<elsecout<"<return0;
}
方法2:
#include
#include
usingnamespacestd;
intmain()
{
inti,n,m;
cout<<"请输入一个数:
"<cin>>n;
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)
break;
if(i>m)
cout<"<else
cout<"<return0;
}
12、输出2-1000中的素数及个数。
且要求每行输出8个素数。
方法1:
#include
#include
intmain()
{
intn=0,i,j,w,k;
for(i=2;i<=2000;i++)
{
w=1;
k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)
{
w=0;
break;
}
if(w)
{
++n;
if(n%8==0)
cout<
else
cout<
}
}
cout<cout<<"个数n="<return0;
}
方法2:
#include
#include
usingnamespacestd;
intmain()
{
inti,j,n=0;
for(i=2;i<2001;i++)
{
for(j=2;j<=i;j++)
{
if(j==i)
{
cout<
n++;
if(n%8==0)
cout<}
if(i%j==0)
break;
}
}
cout<cout<<"个数为n:
"<return0;
}
13、输入两个整数,求最大公约数和最小公倍数。
#include
usingnamespacestd;
intfun1(inta,intb);
intfun2(inta,intb);
intmain()
{inta,b;
cout<<"请输入两个整数:
"<cin>>a>>b;
intfun1(inta,intb);
intfun2(inta,intb);
cout<<"最大公约数:
"<cout<<"最小公倍数:
"<return0;
}
intfun1(inta,intb)
{
intm,i;
m=ab;
for(i=m;i>=1;i--)
{
if(a%i==0&&b%i==0)
break;
}
returni;
}
intfun2(inta,intb)
{
intn,j;
n=ab;
for(j=n;j<=a*b;j++)
{
if(j%a==0&&j%b==0)
break;
}
returnj;
}
14、输入一个非0的一位整数x,输入一个整数n。
输出n位整数xxx…x。
#include
#include
usingnamespacestd;
intmain()
{
intm,i,s,x,n,j;
cout<<"输入一个整数x:
"<cin>>x;
cout<<"输入一个整数n:
"<cin>>n;
s=0;
{
for(i=0;i<=n;i++)
{
j=pow(10,i);
s=s+j;
}
}
m=x*s;
cout<<"结果:
"<return0;
}
15、输入n、a。
求sn=a+aa+aaa+a…a,其中a是一个非0的一位整数。
#include
#include
usingnamespacestd;
intfun(inta,intb);
intmain()
{
intn,a,s,i,k;
cout<<"输入一个整数n:
"<cin>>n;
cout<<"输入一个整数a:
"<cin>>a;
s=0;
for(i=0;i{
k=fun(a,i);
s=s+k;
}
cout<<"Sn="<
return0;
}
intfun(inta,intb)
{
intm,i,s,j;
s=0;
{
for(i=0;i<=b;i++)
{
j=pow(10,i);
s=s+j;
}
}
m=a*s;
returnm;
}
16、输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值。
#include
#include
usingnamespacestd;
voidmain()
{
intx,y,m,n,i,j=1,k=0,a[20];
cout<<"请输入一个数:
";
cin>>m;
y=m;
cout<for(i=1;;i++)
{
j*=10;
n=m/j;
a[i]=n;
k++;
if(n<1)
break;
}
cout<<"您输入的位数是:
"<intb=1,c,d=0;
for(i=1;i<=k;i++)
{
b*=10;
//cout<
}
cout<<"你输入的数字各位分别是:
";
for(i=k;i>0;i--)
{b=b/10;
c=m/b;
m=m-c*b;
d+=c;
cout<}
cout<//cout<<"你输入的数字是"<cout<<"各位上的数字之和为:
"<x=0;
do{
x=x*10+y%10;
y=y/10;
}
while(y!
=0);
cout<<"逆序输出为:
"<cout<}
17、一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3。
求1000以内所有的完数,每行5个。
#include
#include
usingnamespacestd;
intmain()
{
intm,i;
cout<<"1000以内的完数有:
";
for(m=1;m<1001;m++)
{
intc=0,n=0;
for(i=1;i{if(m%i==0)
{c=c+i;}
}
if(c==m)
{n++;
cout<if(n%5==0)
{cout<}
}
cout<return0;
}
18、用迭代法求x=a的平方根。
求平方根的迭代公式为xn+1=0.5(xn+a/xn)。
要求前后两次求出的x的差的绝对值小于1e-5为止。
#include
#include
#include
usingnamespacestd;
intmain()
{
doublex1,x2,a,b;
x2=0;
x1=1.0;
b=1.0;
cin>>a;
while(b>=1e-5)
{
x2=(x1+a/x1)/2;
b=fabs(x2-x1);
x1=x2;
}
cout<return0;
}
19、用牛顿迭代法求方程在1.5附近的根2x3-4x2+3x-6=0
#include
#include
#include
usingnamespacestd;
intmain()
{
doublex=1.5,x0,f,f1;
do{
x0=x;
f=2*x0*x0*x0-4*x0*x0+3*x0-6;
f1=6*x0*x0-8*x+3;
x=x0-f/f1;
}
while(fabs(x-x0)>=1e-5);
cout<<"x0="<return0;
}
20、用二分法求上面的方程在(-10,10)之间的根
#include
usingnamespacestd;
doublefun(doublex)
{
return2*x*x*x-4*x*x+3*x-6;
}
doublejudge(doublee,doublea,doubleb)
{
doublec;
c=(a+b)/2;
if(b-a<=e)
returnc;
else
{
if(fun(c)==0)
returnc;
elseif(fun(a)*fun(c)<0)
//b=c;
returnjudge(e,a,c);
else
{
//a=c;
returnjudge(e,c,b);
}
}
}
intmain()
{
doublee;
cout<<"请输入精确度:
"<cin>>e;
cout<return0;
}
21、打印形状为直角三角形的九九乘法表。
#include
usingnamespacestd;
intmain()
{
inti,j,k;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{cout<k=i*j;
cout<if(i==j)
{
cout<}
}
}
return0;
}
22、百马百担问题。
有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大中小马多少匹,共有多少组解?
#include
usingnamespacestd;
intmain()
{
intx,y,z;
intm=0;
for(x=1;x<100;x++)
{
for(y=1;y<100;y++)
{
for(z=1;z<100;z++)
if((x+y+z==100)&&(6*x+4*y+z==200))
{m++;
cout<<"第"<"<cout<<"大马:
"<cout<<"中马:
"<cout<<"小马:
"<}
}
}
return0;
}
23、数列1,2,2,3,3,3,4,4,4,4,5,……问第100是多少?
#include
usingnamespacestd;
intmain()
{
inti,m,n=0;
for(i=1;i<101;i++)
{
for(m=1;m<=i;m++)
{
n++;
if(n==100)
cout<<"第100个数:
"<
}
}
return0;
}
24、求任意一个整数的十位上的数字。
#include
usingnamespacestd;
intmain()
{
intm,n,x;
cout<<"请输入一个数:
";
cin>>m;
n=m%10;
m=(m-n)/10;
x=m%10;
cout<cout<<"其十位数为:
"<return0;
}
25、输入三个实数,判断能否构成三角形;若能,再说明是何种类型的三角形。
#include
usingnamespacestd;
intmain()
{
inta,b,c;
cout<<"请输入任意三个数:
";
cin>>a>>b>>c;
if((a+b)>c&&(a+c)>b&&(b+c)>a&&(a-b){
if(a==b||a==c||b==c)
cout<<"是等腰三角形";
elseif(a==b&&a==c)
cout<<"是等边三角形";
elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
cout<<"是直角三角形";
elsecout<<"是普通三角形";
}
elsecout<<"不可以构成三角形。
"<return0;
}
26、输入任意的a,b,c求一元二次方程ax*x+bx+c=0的根。
#include
#include
usingnamespacestd;
intmain()
{
inta,b,c;
cout<<"请输入任意三个数a,b,c:
"<cin>>a>>b>>c;
floatx1,x2,d;
d=sqrt(b*b-4*a*c);
if(d>=0)
{
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
cout<<"x1="<cout<<"x2="<}
elsecout<<"无解"<return0;
}
27、将百分制成绩转换为五级制成绩
#include
usingnamespacestd;
intmain()
{
ints;
cout<<"请输入分数:
";
cin>>s;
if(s>100||s<0)
cout<<"输入有误!
";
elseif(s>0&&s<60)
cout<<"不及格";
elseif(s>=60&&s<80)
cout<<"及格";
elseif(s>=80&&s<90)
cout<<"良好";
elseif(s>=90&&s<=100)
cout<<"优秀";
return0;
}
28、输入年月日,判断它是该年的第多少天。
#include
usingnamespacestd;
intmain()
{
intyear,month,day,days=0,i;
cout<<"请输入年月日"<cout<<"请输入年:
";
cin>>year;
cout<<"请输入月:
";
cin>>month;
cout<<"请输入日:
";
cin>>day;
if(year>10000||year<0||month<0||month>13||day<0||day>31)
cout<<"有误!
"<else
if(year%4==0&&year%100==0||year%400==0)
{
for(i=1;i{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
days+=31;
elseif(i==4||i==6||i==9||i==11)
days+=30;
else
days+=29;
}
}
else
{
for(i=1;i{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
days+=31;
elseif(i==4||i==6||i==9||i==11)
days+=30;
else
days+=28;
}
}
cout<<"它是该年的第"<"<return0;
}
29、假定2007年的一月一日是星期三,求2009年的4月20日是星期几。
#include
usingnamespacestd;
longalldays(intyear,intmonth,intday);
longalldays(intyear,intmont