由于我是 TCL 的新手,所以需要一些帮助。
需要为任何给定数字(假设为 10)的阶乘、平方根、平方、立方和立方根编写程序。不使用键,例如:sqrt。
谢谢你。
这些操作中的大部分都可以通过**
操作符完成:
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) }]
可以通过多种方式计算阶乘。
阶乘的递归实现:
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
}