| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3992 人关注过本帖
标题:[求助]一道猴子分苹果的题~试着用c做,没做出来~
只看楼主 加入收藏
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
收藏
得分:0 
对不起啊

错了。

上面那是最后那H要拿的,也就是剩下4*“那个”

有规律

戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-22 13:52
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
收藏
得分:0 
那式子从中间往外,一层一层看。

戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-22 13:55
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
收藏
得分:0 

(a-1-

(a-1-

(a-1-

(a-1-

(a-1)/5 //第一个拿的

)/5 //第二

)/5 //第三

)/5 //第四

)/5 //最后


戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-22 13:59
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
收藏
得分:0 
#include<stdio.h> main() { float f; int a,b,i,c; c=6; i=100; for(a=1;a<i;a++) { for(b=1;b<c;b++) { f=(a-1.)*4./5.; if(f-(int)f==0) continue; else break; } if(f-(int)f==0) printf("\n all=%f,last=%d",a,f); } return 0; }

戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-22 14:35
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
收藏
得分:0 
#include<stdio.h> main() { float f; int a,b,i,c; c=6; i=100; for(a=1;a<i;a++) { for(b=1;b<c;b++) { f=(a-1.)*4./5.; if(f-(int)f==0) continue; else break; } if(f-(int)f==0) printf("\n all=%f,last=%d",a,f); } return 0; }

戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-22 14:37
zhualike
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-4-5
收藏
得分:0 
这道题用一般的 数学方法我觉得作不出来,所以想用c做个穷举法,fanfan200830 的思路我 觉得是对的,只是编出来的程序还是不对~ 郁闷~

2005-08-22 20:52
java在线
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2005-7-9
收藏
得分:0 
是不是最后省下的一定是5个苹果啊?

2005-08-22 23:08
yaoqiang88
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-22
收藏
得分:0 

这是我写的,编译能过,但是运算的结果始终出错,请指点一下: PS:我用的是DEV-C++ #include <stdio.h> #include <stdlib.h>

int last(void); int all(int a);

int main() { int n,sum; n=last(); printf("最后剩下%d个苹果\n",n); sum=all(n); printf("一共有%d个苹果\n",sum); system("pause"); return 0; }

int last(void) { int a1,a2,i,z; for(a1=1;a1<=10000;a1=a1++) { a2=a1; for(i=1;i<=5;i++) { a2=(int)((a2/4)*5+1); z=a2%5; if(z==1) { if(i==5) return a1; else continue; } else break; } } }

int all(int a) { int i; for(i=1;i<=5;i++) a=(a/4)*5+1; return a; }

2005-08-23 00:44
yaoqiang88
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-22
收藏
得分:0 

发错了,应该是这个: #include <stdio.h> #include <stdlib.h>

int last(void); int all(int a);

int main() { int n,sum; n=last(); printf("最后剩下%d个苹果\n",n); sum=all(n); printf("一共有%d个苹果\n",sum); system("pause"); return 0; }

int last(void) { int a1,a2,i,z; for(a1=1;a1<=10000;a1=a1++) { a2=a1; for(i=1;i<=5;i++) { a2=(int)((a2/4)*5+1); z=a2%5; if(z==1) { if(i==5) return a1; else continue; } else break; } } }

int all(int a) { int i; for(i=1;i<=5;i++) a=(a/4)*5+1; return a; }

2005-08-23 00:46
yaoqiang88
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-8-22
收藏
得分:0 

这次做出来了,答案是一共有3121个苹果,最后剩下1020个苹果,程序如下: #include <stdio.h> #include <stdlib.h>

int main(void) { int a,b,c; for(a=6;a<=10000;a+=5) { c=a; for(b=1;b<=5;b++) { c=(c-1)/5*4; if((c-1)%5==0&&b!=5) continue; else break; } if(b==5) { printf("最后剩下%d个苹果\n",c); printf("总共有%d个苹果\n",a); break; } } system("pause"); return 0; } PS:但是我一直不清楚以前得算法有什么不对得地方,请高手指点一下

2005-08-23 03:13
快速回复:[求助]一道猴子分苹果的题~试着用c做,没做出来~
数据加载中...
 
   



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

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