//递归算法
//求阶乘:编写程序求n的阶乘
//n!=n*(n-1)*(n-2)*......*2*1
package main
import "fmt"
/*func jc(i int) (j int) {
if i <= 1 {
j = 1
} else {
j = i * jc(i-1)
}
return
}*/
func jc(i int) int {
if i <= 1 {
return 1
} else {
return i * jc(i-1)
}
}
func main() {
var n int
fmt.Scanf("%d\n", &n)
fmt.Printf("n! = %d\n", jc(n))
}
上面的代码中有两个jc()函数,使用未被注释的jc函数编译会出现
function ends without a return statement
的错误!
而使用被注释的jc函数则不会,这是什么原因?