shineng 发表于 2008-4-26 16:00

这些题要怎么做,我想了一天还是没想出来,求助!

百钱买百鸡问题  公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?编程找出所有的买法。


猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半另加一个。到第10天早上想再吃时,就只剩下1个桃子了。求第一天共摘了多少个桃子。

谢了![tk12]

sunkaidong 发表于 2008-4-26 16:49

这些都是例子..最好自己写写....

中学者 发表于 2008-4-26 19:39

最好自己写//
[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]

花边蜂 发表于 2008-5-16 03:15

自己漫漫看了

dubaoshi 发表于 2008-5-16 10:23

百钱买百鸡我是这样写的:
#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;
}

dubaoshi 发表于 2008-5-16 10:45

[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;
}

最好是弄个迭代函数:)
但我还不怎么会弄呢。

魔王 发表于 2008-6-10 16:27

Tank you

[em14] [em14]

lpjias 发表于 2008-6-16 21:43

我也做出来了,很有满足感,分享一下我的喜悦
我的代码:
#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;
}

孤魂居士 发表于 2008-6-17 00:01

就几个循环加判断...自己多思考

tanshaoshi 发表于 2008-6-17 15:13

百钱买百鸡问题  公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?编程找出所有的买法。
这个先列出方程式

MODIFIER 发表于 2008-6-17 15:41

往往这些题都是从数学里引过来的

lai832 发表于 2008-6-19 08:33

我的定的长了一点点:

/*百钱买百鸡问题  公鸡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]

编程论坛