c++程序的设计钱能第二版习题解答多解法Word下载.docx
《c++程序的设计钱能第二版习题解答多解法Word下载.docx》由会员分享,可在线阅读,更多相关《c++程序的设计钱能第二版习题解答多解法Word下载.docx(41页珍藏版)》请在冰豆网上搜索。
![c++程序的设计钱能第二版习题解答多解法Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/2/073bc18f-9583-44d4-a861-dd4217a35528/073bc18f-9583-44d4-a861-dd4217a355281.gif)
#include<
cmath>
intmain()
{
doublex;
cin>
>
x;
doublesum=1;
doublet=x;
inti=2;
while(abs(t)>
1e-8)
{
sum+=t;
t*=(-1)*x/i;
i++;
}
cout.precision(8);
fixed<
x="
x<
sum="
sum<
\n"
for(inti=2;
abs(t)>
1e-8;
i++)
doublex,sum=1,t;
t=x;
t*=(-1)*x/i++)
iomanip>
doublesum=1,item=-1;
for(inti=1;
abs(item)>
item*=(-1)*x/i;
sum+=item;
setprecision(8)<
//函数版。
intfact(intn);
doublex,sum=1,item=1,po;
for(intn=1,sign=1;
abs(item)>
1e-8;
n++,sign*=-1)
po=pow(x,n);
item=sign*po/(fact(n));
js="
setiosflags(ios:
:
fixed)<
intfact(intn)
if(n==1)
return
(1);
else
return(fact(n-1)*n);
//练习二第02题。
//1!
+2!
+3!
+...+12!
intsum=0;
for(inti=1;
i<
=12;
intt=1;
for(intj=1;
j<
=i;
++j)
{
t=t*j;
}
sum=sum+t;
1!
="
for(inti=1,t=1;
t*=++i)
+...+n!
intn,s,i,t;
pleaseinputaintegern:
"
n;
s=0;
t=1;
for(i=1;
i<
=n;
i++)
t*=i;
s+=t;
+...+"
n<
!
s<
//练习二第03题。
//求“水仙花数”。
intn,a,b,c;
for(n=100;
n<
1000;
n++)
a=n/100;
b=n%100/10;
c=n%10;
if(a*a*a+b*b*b+c*c*c==n)
cout<
isanarcissusnumber."
for(inti=1;
=9;
for(intj=0;
j++)
for(intk=0;
k<
k++)
{
inta=100*i+10*j+k;
if(i*i*i+j*j*j+k*k*k==a)
{
cout<
a<
}
}
//练习二第04题。
//求1000“完数”。
intn,a,sum;
for(n=1;
=1000;
for(a=1,sum=0;
a<
=n/2;
a++)
if(!
(n%a))
sum+=a;
if(sum==n)
cout<
isawanshu."
intsum=1;
for(intj=2;
=i/2;
if(i%j==0)
sum+=j;
if(sum==i)
//===============================================
//练习二第05题。
//求3位对称素数。
//-----------------------------------------------
boolisPrime(intn)
n;
++i)
if(n%i==0)
returnfalse;
returntrue;
}//----------------------------------------------
for(inti=100;
if((i/100==i%10)&
&
isPrime(i))
是一个对称的素数!
}//==============================================
intm=sqrt(double(n));
for(inti=3;
=m;
i+=2)
for(intj=0;
++j)
intk=101*i+10*j;
if(isPrime(k))
k<
//包含数学运算的函数头文件
//使用标准的命名空间
intisPrime(inta);
//判断是否为素数的函数声明
intnum;
inti,j,k;
//i,j,k分别代表百位、十位、个位的位数
for(num=100;
num<
num++)
i=num/100;
j=(num-i*100)/10;
k=(num-i*100-j*10)/1;
//当然这里可以不用除以1
if((i==k)&
isPrime(num))
num<
//输出3位对称的素数
}
intisPrime(inta)//判断是否为素数的函数定义
inti,result;
//result中0代表a不是素数、1代表a是素数
for(i=2;
=sqrt(a);
i++)
if(a%i==0)
result=0;
break;
elseresult=1;
returnresult;
}
//练习二第06题。
//猴子吃桃。
intday,former,beh=1;
for(day=9;
day>
=1;
day--)
former=(beh+1)*2;
beh=former;
猴子共摘下桃子:
former<
intpeachs=1;
10;
peachs=(peachs+1)*2;
peachs<
//练习二第07题。
//打印图形。
string>
=10;
cout<
string(10-i,'
'
);
string(2*i-1,'
%'
for(intj=9;
j>
j--)
string(10-j,'
string(2*j-1,'
for(inti=1,j=1;
=19;
++i,j=(i<
10)?
i:
20-i)
string(10-j,'