| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2569 人关注过本帖
标题:[求助]猴子吃桃
取消只看楼主 加入收藏
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
 问题点数:0 回复次数:10 
[求助]猴子吃桃
猴子第一天摘了一些桃子,当天吃一半加1个,以后每天吃前天剩下的一半加1个,10天后只剩下1只,求第一天摘了多少?
我想用正推穷举把总数定为10000内,不知道这种思路对不对,结果是没有输出,也不知道哪里有问题
#include <stdio.h>
#define DAY 10
int main(void)
{
int i,n,m;
for(n=10;n<10000;n+=2);
{
m=n;
for(i=1;i<DAY;i++)
m=m-(m/2+1);
if (m==1)
{
printf("%d",n);
n=10000;
}
}
getchar ();
}
搜索更多相关主题的帖子: 猴子 
2007-10-26 14:20
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
逆推是可以,但我觉得穷举正推也应该可以,所以请问是不是什么地方出错了?

抵制日货,人人有责!
2007-10-26 14:34
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
以下是引用chmlqw在2007-10-26 14:28:48的发言:
逆向思考
第十天: 1
第九天: 1+2*1=3
第八天: 1+2*3=7;
.......


n = 1;
for (i=day; i>0; i--)
n = n*2+1;
......
大概这样

但是好象不是这样逆推的……


抵制日货,人人有责!
2007-10-26 14:37
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 

主要不是讨论反推到底如何,请问我用正推到底行不行?不行又是哪里出了问题?
还望高人指点迷津


抵制日货,人人有责!
2007-10-26 14:51
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
哪里错了还请LS指明,谢谢

抵制日货,人人有责!
2007-10-26 14:58
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
等了这么久,有高手米啊?

抵制日货,人人有责!
2007-10-26 16:24
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 

很多朋友都说逆推法好,但是作为新手我只是想尝试下不同的方法。
谢谢16楼的朋友指点迷津,也谢谢各位朋友,让我学到了更多的方法


抵制日货,人人有责!
2007-10-27 08:03
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
以下是引用lqcheng在2007-10-27 8:40:33的发言:
[CODE]#include<stdio.h>
#define DAY 10
int main(void){
int n,m,i;
for(n=10;n<10000;n+=2){
m=n;
for(i=1;i<=DAY;i++){
m=m-(m/2+1);
}
if(m==1){
printf("%d\n",n);
n=10000;
}
}
return 0;
}[/CODE]
楼主亲自输入试试。我的结果是2048,当然不对了。m=m-(m/2+1); m/2,若m是奇数(循环几次后有可能),结果就不对了。

结果也许不对,题目说第一天吃掉一半,即不可能是奇数,再多吃一个,依次类推,m=m-(m/2+1)我觉得这个算式应该没什么问题吧?


抵制日货,人人有责!
2007-10-28 00:46
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
以下是引用lqcheng在2007-10-27 8:44:39的发言:
刚才没看见第二页,
原来多了个分号啊,
不过我觉得穷举不对

为什么穷举不对?
望赐教


抵制日货,人人有责!
2007-10-28 00:50
PKER
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-18
收藏
得分:0 
以下是引用moonwalker在2007-10-28 15:57:43的发言:

尽管你这种方法可行,也不推荐这么用,效率太低,而且不确定因素太多,比如你怎么知道10000一定够?或者10000是不是多的太多了?而且你这种穷举法还用的双层循环,如果是个很大的数据就会很慢了。


我只是想弄清一些事情。
既然方法可行,但是即使把分号去掉也没有得到正确结果,所以我很想知道具体是什么地方出了问题?这个问题困扰我好几天了,可是没人指出来。
很荣幸飞燕大侠也路过了,一直都很崇拜编程高手的女人


抵制日货,人人有责!
2007-10-29 13:43
快速回复:[求助]猴子吃桃
数据加载中...
 
   



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

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