佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1132|回复: 7

C Language : 这coding有谁可以解释给我吗?

[复制链接]
发表于 9-10-2008 10:48 AM | 显示全部楼层 |阅读模式
  1. int power(int asas, int kuasa )
  2. {
  3. kuasa--;
  4. if (kuasa>-1)
  5. return asas * (power(asas,kuasa));
  6. else
  7. return 1;
  8. }
复制代码


我看不明白这个function是怎么work的。
没有loop,为什么要kuasa--?
return asas * (power(asas,kuasa));
else
return 1;

什么意思?
回复

使用道具 举报


ADVERTISEMENT

发表于 9-10-2008 11:11 AM | 显示全部楼层
看是没有什么while loop, for loop...,可是它有function loop 啊,它一直call它自已。
回复

使用道具 举报

发表于 9-10-2008 11:24 AM | 显示全部楼层
其实这个问题不难, 不过其他刚刚学人来讲确实难
这种写法我们称呼它“recursive function”, 是一个不用loop 而又可以拿到loop 的方法。
简单来讲,用loop 写到的方程式, 也可以放在function里,不过要学会用的话就要下苦功咯!
建议你去读一个叫做algorithm 的书, 里面有解释如使用。
在这里恐怕没办法解释清楚........
回复

使用道具 举报

 楼主| 发表于 9-10-2008 11:24 AM | 显示全部楼层
原帖由 junkiet 于 9-10-2008 11:11 AM 发表
看是没有什么while loop, for loop...,可是它有function loop 啊,它一直call它自已。


function loop???
我看不到。。。
回复

使用道具 举报

发表于 9-10-2008 11:35 AM | 显示全部楼层
recursion来的
自己去google或着wikipedia找

因为他的concept不是几句话就能掌握的
回复

使用道具 举报

发表于 9-10-2008 11:40 AM | 显示全部楼层

回复 5# 晨天 的帖子

对对对,不是一时三刻就可以理解的
回复

使用道具 举报

Follow Us
发表于 9-10-2008 12:22 PM | 显示全部楼层
之前geekman有解释过, 以unfold 的方式一层一层的翻开。( 超有耐心,小弟五体投地)

http://cforum1.cari.com.my/viewt ... tra=page%3D2&page=1

---------------

recursive function 不会用不要乱用。 一般我是用在pass by reference 哪里, 或是偷懒用的。

[ 本帖最后由 onlylonly 于 9-10-2008 12:24 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 9-10-2008 04:00 PM | 显示全部楼层
好的
谢谢大家的回复~
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-12-2025 04:19 PM , Processed in 0.166069 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表