这些题要怎么做,我想了一天还是没想出来,求助!
百钱买百鸡问题 公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?编程找出所有的买法。猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半另加一个。到第10天早上想再吃时,就只剩下1个桃子了。求第一天共摘了多少个桃子。
谢了![tk12]
[code]
#include<stdio.h>
int main(void)
{
//百鸡问题,穷举
int x,y,z;
for(x=0;x<34;++x)
for(y=0;y<101;++y)
for(z=3;z<101;z+=3)
if(3*x+y+z/3==100&&x+y+z==100)
printf("x: %d y: %d z: %d\n",x,y,z);
//猴子问题:迭代
int x__,y__,i;
for(i=1,x__=1;i<=9;++i)
{
y__ = 2*(x__+1);
x__ = y__;
}
printf("%d\n",x__);
return 0;
}
[/code] 自己漫漫看了 百钱买百鸡我是这样写的:
#include<iostream>
using namespace std;
int main()
{
int i,j,k,l=0;//公鸡i,母鸡j,小鸡k,买法计数l
for(i=0;i<=34;i++)
for(j=0;j<=(100-i);j++)
{
k=100-i-j;
if(9*i+3*j+k==300)
{
cout<<"公鸡:"<<i<<"母鸡:"<<j<<"小鸡:"<<k<<endl;
l++;
}
}
cout<<"共有"<<l<<"种买法。"<<endl;
return 0;
} [tk07] [tk07] [tk10] [tk10] [tk10] [tk07] [tk11] [tk07] [tk04]
桃子的问题,我这样写:
#include<iostream>
using namespace std;
int main()
{
int x=1,j;//桃子i第十天为1个
for(j=9;j>0;j--)
{x=2*(x+1);
cout<<"第"<<j<<"天桃子为:"<<x<<endl;}
return 0;
}
最好是弄个迭代函数:)
但我还不怎么会弄呢。
Tank you
[em14] [em14] 我也做出来了,很有满足感,分享一下我的喜悦我的代码:
#include "iostream.h"
int main(void)
{
int x,y,z;
x=y=z=0;
cout<<"公鸡"<<" "<<"母鸡"<<" "<<"小鸡"<<endl;
for(x=0;x<=33;x++)
{
for(y=0;y<=100;y++)
{
for(z=0;z<=33;z++)
{
if((3*x+y+z)==100)
{
if((x+y+3*z)==100)
{
cout<<x<<" "<<y<<" "<<3*z<<endl;
}
}
}
}
}
return 0;
} 就几个循环加判断...自己多思考 百钱买百鸡问题 公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?编程找出所有的买法。
这个先列出方程式 往往这些题都是从数学里引过来的
我的定的长了一点点:
/*百钱买百鸡问题 公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?
编程找出所有的买法。*/
#include<stdio.h>
#include<iostream>
int main(void)
{
int i,j,k,l=0,sum;//鸡的数量:i公鸡;j母鸡;k小鸡;总数
float money;//
for(i=0;i<35;i++)
for(j=0;j<101;j++)
for(k=0;k<101;k++)
{
sum=i+j+k;
money=i*3+j+k/3;
if(sum==100 && money==100)
{
l++;
// printf("第%2d种买法是:%d只公鸡;%d只母鸡;%d只小鸡;共%d只.\n",l,i,j,k,sum);
// printf("金 额:公鸡%d元;母鸡%d元;小鸡%d元;共%5.2f元.\n\n",i*3,j,int(k/3),money);
}
if(sum>100||money>100)
break;
}
printf("共%d种买法.\n",l);
system("pause");
}
页:
[1]
