注册 登录
编程论坛 C++教室

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

shineng 发布于 2008-04-26 16:00, 1333 次点击
百钱买百鸡问题  公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?编程找出所有的买法。


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

谢了!
11 回复
#2
sunkaidong2008-04-26 16:49
这些都是例子..最好自己写写....
#3
中学者2008-04-26 19:39
最好自己写//
程序代码:

#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;
}
#4
花边蜂2008-05-16 03:15
自己漫漫看了
#5
dubaoshi2008-05-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;
}
#6
dubaoshi2008-05-16 10:45

桃子的问题,我这样写:
#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;
}

最好是弄个迭代函数:)
但我还不怎么会弄呢。
#7
魔王2008-06-10 16:27
Tank you
#8
lpjias2008-06-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;
}
#9
孤魂居士2008-06-17 00:01
就几个循环加判断...自己多思考
#10
tanshaoshi2008-06-17 15:13
百钱买百鸡问题  公鸡3元1只。母鸡1元1只。小鸡1元3只。如何花100元刚好买到100只鸡呢?编程找出所有的买法。
这个先列出方程式
#11
MODIFIER2008-06-17 15:41
往往这些题都是从数学里引过来的
#12
lai8322008-06-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