| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2340 人关注过本帖
标题:求助!猴子吃桃的算法问题
只看楼主 加入收藏
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
快速回复:求助!猴子吃桃的算法问题
数据加载中...
 
   



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

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