A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiusiyu 中级黑马   /  2014-9-17 16:48  /  1972 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

猴子吃桃子问题{:3_54:}

  有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。
要求:

1)采用链数据结构实现上述求解
2)采用递归实现上述求解

希望各位猴哥踊跃顶贴,掀起一股偷桃的热浪{:3_67:}

10 个回复

正序浏览
努力微笑 发表于 2014-9-18 16:14
用到的数据结构里的东西。、、

是的,大神能做不?{:3_67:}
回复 使用道具 举报
★彬★卍囧神 发表于 2014-9-18 20:49
C语言书上的一道题好像

是滴,书上的一道题,咱们的视频里没有。

版主已经考进第三期了吗?{:3_51:}
回复 使用道具 举报
C语言书上的一道题好像
回复 使用道具 举报
longshaocn 来自手机 中级黑马 2014-9-18 20:23:36
8#
递归的简单!
回复 使用道具 举报
用到的数据结构里的东西。、、
回复 使用道具 举报
这个链结构基础视频里好像没有啊    是在升级视频里的么?看不懂     递归看的懂了  昨天我试了试没写出来  受教了   哈哈
回复 使用道具 举报
看不懂啊,还没学到这,还真是看不懂
回复 使用道具 举报
链结构这么复杂?

有简单点的版本吗?
回复 使用道具 举报
yinzhenyu 发表于 2014-9-17 18:08
链结构
#include"iostream"
#include"stdlib.h"

注释写的好详细~~赞一个
回复 使用道具 举报
链结构
#include"iostream"
#include"stdlib.h"
#include"stdio.h
"#define TRUE1
#define FALSE0
#define ERROR0
#define OVERFLOW0
#define OK 1
#define NULL 0
typedefintStatus;
typedefintElemType;
structLNode{
ElemTypedata;
LNode*next;};
typedefLNode*LinkList;
voidInitList(LinkList&L)//构造一个空链链表{
L=(LinkList)malloc(sizeof(LNode));//产生头结点,并使L指向此头结点
if(!L)
exit(OVERFLOW);
L->next=NULL;}
StatusGetElem(LinkListL,inti,ElemType&e)//当第i个元素存在的时,将其值赋给e
while(p&&j<i)//顺指针向后查找,直到找到p指向第i个结点
{j++;p=p->next;}
if(!p||j>i)
returnERROR;
e=p->data;
returnOK;}
StatusListInsert(LinkListL,inti,ElemTypee)//在第i个位置之前插入元素e
{
intj=0;//计数器初值为0
LinkLists,p=L;//p指向头结点
while(p&&j<i-1)//寻找第i个结点
{j++;
p=p->next;
}
if(!p||j>i-1)return0;
s=(LinkList)malloc(sizeof(LNode));//生成新的结点
s->data=e;
s->next=p->next;//新结点指向原第i个结点
p->next=s;//原第i-1个结点指向新结点
return1;}
voidmain()
InitList(L);//初始化链表for(i=1,n=1;i<=10;i++)
{
n=2*n+2;//将每一天的桃子数赋值给nListInsert(L,1,n);//将n的值输入链表}
StatusGetElem(L,1,e);
printf("%d",e);//输出桃子的数目}


递归结构
include<stdio.h>
intsum_fan(intn,inti)//子函数sum_fun,参数n和i接受主函数的参数和day
{
if(i>0){
n=sum_fan((n+1)*2,--i);//每一次都用((n+1)*2)的值去调用子函数本身
}
returnn;//返回结果
}
voidmain(){
intsum;intday=9;//实现函数调用的次数
intx=1;
//最后一天还剩得一个桃子
sum=sum_fan(x,day);//调用子函数sum_fan,并把返回得结果赋给sum
printf("%d",sum);}
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马