今天又动怒了

xiaoB.M. 发表于 2007-08-12 14:37:42

先上聊天记录:
考虑到涉及个人隐私问题,涂掉了昵称

XXXXXXXXXXX12:51:35
在不`~?
xiaob.m. 12:51:28

 
XXXXXXXXXXX12:51:59
有个个程序我看不明```
xiaob.m. 12:56:40

 
XXXXXXXXXXX12:58:52
#include<stdio.h>
main()
{
   long result,number;

 printf("Enter an integer:");
scanf("%1d",&number);
result=fibonacci(number);
printf("Fibonacci(%1d)=%1d\n",number,result);
return 0;
}


long fibonacci(long n)
{
 if(n==0||n==1)
return n;
else
return fibonacci (n-1)+fibonacci(n-2);

}


XXXXXXXXXXX12:58:59
就是这个``
XXXXXXXXXXX13:05:32
能解释下吗`~?`
xiaob.m. 13:33:00
这就是一个递归程序啊
 
XXXXXXXXXXX 13:34:29
我知道````但就是不明程序的运算方式```
xiaob.m. 13:34:59
什么不明白?
你可以在纸上画出调用过程来
 
XXXXXXXXXXX 13:36:50
我就是不明调用涵数个度``
xiaob.m. 13:38:39
你把从3到5的调用写出来就知道了
 
XXXXXXXXXXX 13:39:50
怎么写```不明哦``
xiaob.m. 13:40:34
求F (3)等于多少的时候调用了几次函数,怎么调用的,调用顺序又是怎么样


XXXXXXXXXXX 13:41:20
你能解释么`````
xiaob.m. 13:45:53
我怎么解释??
说了就是函数的递归调用
比如求3的时候

F(3)
3不等于0 不返回
3不等于1 不返回
调用 F(3-1=2), F(3-2=1)

接下来是F(2)
2不等于0 不返回
2不等于1 不返回
调用 F(2-1=1), F(2-2=0)

接下来调用F(1)
1等于1 所以返回 1
再调用F(0)
0等于0 返回 0;

所以最后F(2)返回的是F(1)+F(0)= 1;

接下来调用F(1)
1 等于1 返回 1
所以F(3) 返回的解说是
F(2)= 1 F(1) = 1
F(3) = F(2)+ F(1)
 
XXXXXXXXXXX 13:53:06
  还真的不明````晕```
XXXXXXXXXXX 13:56:34
能详细的说明下么``````
xiaob.m. 13:58:38
这还不详细?
 
XXXXXXXXXXX 13:59:12
我还是不明```
XXXXXXXXXXX 13:59:28
就求F=3解释下````
xiaob.m. 13:59:48
我都把所有的调用过程都写出来了啊,其他的我也不知道怎么说了
 
XXXXXXXXXXX 14:00:53
真的不明```哎````
那为什么输入3明``打印出2来`?
xiaob.m. 14:00:57
F(3) 的结果是2
 
XXXXXXXXXXX 14:01:21
为什么``
xiaob.m. 14:01:34
F(3)= F(2) + F(1)
 
XXXXXXXXXXX 14:02:15
我知道是这样```
但为什么不是1`
xiaob.m. 14:02:45
F(2) =  F(1) + F(0)
 
XXXXXXXXXXX 14:03:13
你这样说我真的不明```
XXXXXXXXXXX 14:03:20
==

XXXXXXXXXXX 14:04:21
就是说到最后如果哪个F的值=F(1)+F(0)
就打印哪个么`~?
xiaob.m. 14:05:17
你会求F(2) 么???
 
XXXXXXXXXXX 14:05:56
不会````如果我会的话就不用问你了``
xiaob.m. 14:06:06
求F(1)呢


XXXXXXXXXXX 14:06:26
全部不会``
xiaob.m. 14:06:23
你会函数调用么
 
XXXXXXXXXXX 14:06:44
不是`````0和1就明```
xiaob.m. 14:07:44
return fibonacci (n-1)+fibonacci(n-2);
这句话什么意思知道么
 
XXXXXXXXXXX 14:08:42
返回fibonacci (n-1)+fibonacci(n-2)的值给调用它的变量`
xiaob.m. 14:09:07
fibonacci (n-1)这个是什么
 
xiaob.m. 14:09:50
当n=2是把这句话翻译一下
fibonacci (n-1)+fibonacci (n-2)
 
XXXXXXXXXXX 14:10:50
是执行2的递归么`~?
xiaob.m. 14:11:37

当n=2的时候
long fibonacci(long n)
{
 if(n==0||n==1)
return n;
else
return fibonacci (n-1)+fibonacci(n-2);

}
 
XXXXXXXXXXX 14:12:14
但+fibonacci(n-2)为什么要这个`~?
xiaob.m. 14:14:06
因为程序要求的是一个数列(知道数列吗)
它的递推公式是:
F(0) = 0;
F(1) = 1;
F(n)= F(n-1)+F(n-2)
 
XXXXXXXXXXX 14:15:00
我就是不明这个公式````
我书上都是这样写``但我就是看不明```
xiaob.m. 14:15:01
你学过数学没
 
XXXXXXXXXXX 14:15:25
我数学好差的```
xiaob.m. 14:15:41
知道什么叫数列吗
 
XXXXXXXXXXX 14:16:09
不知``
xiaob.m. 14:16:09
C程序知道什么叫数组么
 
XXXXXXXXXXX 14:16:41
不知```因为还没看到```嘻嘻``
xiaob.m. 14:16:50
那算了,这个递归你不用看了
 
XXXXXXXXXXX 14:17:12
为什么```?


一直认为自己比较有耐心,在给别人讲解题目的时候,总是能说个明白,高中也这样认为,不过发现自己有时候情绪非常容易激动,一下就控制不了自己了。
对于上面说的那位,我实在没有多少言语了,说完我就直接把他拉入黑名单了,记得他加我的时候是去年了,一年的时间他的C语言学习还在这水平,搞笑的是居然数列,数组都不知道。也许递归跟这些没关系,不过这些基础都不知道,递归原理明白了又能怎么样呢,自己当时实在是火了。
不过自己的容易激动的问题还是要注意一下

关键词(Tag): 聊天记录 脾气 窝火

收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定