标题:求助!猴子吃桃的算法问题
只看楼主
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
 问题点数:0 回复次数:13 
求助!猴子吃桃的算法问题
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

这是我写的代码:
#include "stdio.h"
void main()
{
 int i,j=1;
 for(i=1;i<=10;i++)
 j=j*2+1;
 printf("第一天共摘了%d个",j);
}
算出结果不对,请问这是错在哪了?
搜索更多相关主题的帖子: 猴子 算法 桃子 void 
2008-04-21 21:46
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
应该是f(n-1) = 2*(f(n)+1);
程序代码:
#include<stdio.h>
int main(void)
{
    int x,y,n=10;
    for(y=1;n>0;--n)
    {
        x = 2*(y+1);
        y = x;
     }
     printf("%d",x);
   return 0;
}

樱花大战,  有爱.
2008-04-21 21:55
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
得分:0 
[bo]以下是引用 [un]中学者[/un] 在 2008-4-21 21:55 的发言:[/bo]

应该是f(n-1) = 2*(f(n)+1);

 

可我的算法和你的是不一样的阿~~
我是逆向的算,从第十天开始逐个加上去,有什么错呢?

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-21 22:02
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
得分:0 
算了几遍,感觉我的想法对着呢呀?

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-21 22:23
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
lz你的算法错了..比如第9天还吃完后还有1个..那么9天的早上应该看见的是x,x-x/2-1=1,x=4个...而不是你的3个

学习需要安静。。海盗要重新来过。。
2008-04-21 22:32
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
得分:0 
j=(j+1)*2

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-21 22:34
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
得分:0 
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-4-21 22:32 的发言:[/bo]

lz你的算法错了..比如第9天还吃完后还有1个..那么9天的早上应该看见的是x,x-x/2-1=1,x=4个...而不是你的3个

噢~~这样啊~可这逆向算法该怎么实现?难道逆向就无法得出答案了吗?

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-21 22:35
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
他们的都是倒推的算法.....

学习需要安静。。海盗要重新来过。。
2008-04-21 22:36
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
程序代码:
/*
        这是我的代码,算法不算高明,不过却也实现了目的。
*/
#include<stdio.h>
int main(void)
{
        int i,j=1;
        for(i=0;i<10;++i)
                j=(j+1)*2;
        printf("%d\n",j);

        system("pause");
        return 0;
}
2008-04-21 23:18
churis
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-30
得分:0 
请问这个system("pause");是什么意思哦。小弟不懂。
2008-04-22 00:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-210319-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069496 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved