书上的课后作业。
有一个分数序列:1/2,3/2,5/3,8/5,13/8,.21/13........求出该数的前20项之和。
#include<iostream.h>
void main()
{
int a=2,b=1,x=1;
double sum=0;
while(x<=20)
{
sum+=(double)a/b;
a=a+b;
b=a-b;
x++;
}
cout<<sum<<endl;
}
注意类型要强制转换“ sum+=(double)a/b;“否则就会取整了。影响输出结果
百鸡百钱问题,有一只公鸡五元钱,母鸡3元,三只小鸡一元钱,问花100元买一百只鸡,可以怎么买,公鸡多少,母鸡多少,小鸡多少?
#include<iostream.h>
void main()
{
int gj,mj,xj;
for(gj=1;gj<=100;gj++)
{
for(mj=1;mj<=100;mj++)
{
xj=100-gj-mj;
if(xj%3!=0)
{
continue;
}
if(gj*5+mj*3+xj/3==100)
{
cout<<"公鸡"<<gj<<"\t"<<"母鸡"<<mj<<"\t"<<"小鸡"<<xj<<endl;
}
}
}
}
注意:小鸡的个数是一元三个,是除以3。而不是乘以三
求水仙花数:
#include<iostream.h>
void main()
{
int i,j,k;
for(i=1;i<=9;i++)
{
for(j=0;j<=9;j++)
{
for(k=0;k<=9;k++)
{
if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)
{
cout<<"此数是水仙花数"<<i*100+j*10+k<<endl;
}
}
}
}
}
求正数和:
#include<iostream.h>
void main()
{
int x,sum=0,i=0;
while(1)
{
cout<<"请输入数据"<<endl;
cin>>x;
if(x==0)
{
break;
}
if(x>0)
{
sum+=x;
i++;
}
else
{
continue;
}
//cout<<"请输入数据"<<endl;
//cin>>x;
}
cout<<"总和为"<<sum<<"个数为"<<i<<endl;
}