您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记——第二章习题(三)

2007-09-29 16:37 489 查看
//2.9--------------母牛问题:若一头母牛,从出生第四个年头每年生一头母牛,第n年有多少头母牛?---------------------------------------
cout<<"输入第几个年头:";
int m;
cin>>m;
int cow1=1,cow2=0,cow3=0,cow4=0;//前四年生牛
for(int i=2;i<=m;i++){
cow4=cow4+cow3;
cow3=cow2;
cow2=cow1;
// cow4=cow4+cow3;
cow1=cow4;
cout<<"第"<<i<<"年,一年牛"<<cow1<<"只,两年牛"<<cow2<<"只,三年牛"
<<cow3<<"只,母牛"<<cow4<<"只,总共"
<<cow1+cow2+cow3+cow4<<"只"<<endl;
}
//-----------------------这个问题在网上有很多种不同的解法,有些用到了递归,有些将问题继续扩展如到第几个年头母牛不产仔,和牺牲。我按照自己的理解,将牛分成四种一年生的牛——四年以上的母牛,按年循环,最终得出总牛数,哦my god,母牛们真厉害!!生牛也能成个问题!好像还是个著名的什么什么序列!!---------------------------------
//2.10-----------------小球从100米高度落下,每次反弹回原高度的一半,求第十次落地时经过多少米,落地后反弹多少米?-----------------------------------
double m=100,sum=100;
for(int i=2;i<=11;i++){
m=m/2;
sum+=(m*2);
cout<<"第"<<i-1<<"次落地后弹起"<<m<<"米"<<endl;
cout<<"第"<<i<<"次落地时经过路程"<<sum<<"米"<<endl;
}
//-------------------------似曾相识,比较简单,只要注意距离计算来回路程就行了-------------------------------
//2.11-------------------将100元兑换成10元,5元,1元,求不同种兑换方法,要求每种兑换方法都要包括这三种纸币---------------------------------
cout<<"100元钱可以兑换成:"<<endl;
double x;
for(int i=1;i<=9;i++){
for(int j=1;j<=17;j++){
for(int k=1;k<=85;k++){
x=10*i+5*j+k;
if(x==100){
cout<<"10元"<<i<<"张,5元的"<<j<<"张,1元的"<<k<<"张"<<endl;
}
}
}
}//---------------------------比较简单,算出范围就行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: