0

由于我是 TCL 的新手,所以需要一些帮助。

需要为任何给定数字(假设为 10)的阶乘、平方根、平方、立方和立方根编写程序。不使用键,例如:sqrt。

谢谢你。

4

2 回答 2

2

这些操作中的大部分都可以通过**操作符完成:

set x 7
set square [expr { $x ** 2 }]
set square_root [expr { $x ** (1.0 / 2) }]
set cube [expr { $x ** 3 }]
set cube_root [expr { $x ** (1.0 / 3) }]

可以通过多种方式计算阶乘。

于 2012-08-19T07:23:35.210 回答
0

阶乘的递归实现:

proc fac {n} {
    if { $n == 0 } {
        return 1
    } else {
        return [expr {$n*[fac [expr {$n-1}]]}]
    }
}

还有一个迭代版本:

proc fac {n} {
    set result 1
    for { set i 1 } { $i <= $n } { incr i } {
        set result [expr {$result * $i}]
    }
    return $result
}
于 2014-09-19T05:23:51.633 回答