1. 首页
  2. 主题
  3. Go基础

递归函数的调用 有疑问

SandWind · · 2375 次点击
如下是我编写一个递归函数计算一个数字的阶乘 代码如下: ```go // test package main import ( "fmt" ) // 函数定义 func ProductIn(t1 int) (k int) { k = 1 if t1 < 1 { return 0 } else { if t1 == 1 { k = 1 } else { k = t1 * ProductIn(t1-1) } } return } func main() { p := 0 p = ProductIn(100) fmt.Println("阶乘运算结果是:", p) } ``` 运行go run xxx.go 结果如下: 阶乘运算结果是: 0 我有疑问返回结果怎么是0呢?
你递归出口:`return 0`,最后可不就是 0
#1
更多评论
还有个发现我发现是不是我数据溢出也归于0了
#2
其实不是return问题是数据溢出了 我测试了 把int改为uint64只能算到65的阶乘
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中