Java題目:https://blog.csdn.net/wenzhi20102321/article/details/52274976
Program1.
proc fun_1 {x} {
if {$x<3} {
return 1
} else {
return [expr [fun_1 [expr $x - 1]] + [fun_1 [expr $x - 2]]]
}
}
puts [fun_1 10]
program 2
#判斷是不是素數的函數
#namespace import ::tcl::mathfunc::*
#循環結束都沒有返回0才能判斷是素數,則返回1;注意return 的返回值
proc fun_2 {x} {
for {set i 2} {$i < sqrt($x)} {incr i} {
if {$x % $i == 0} {
return false
}
}
return True
}
proc fun_3 {a b} {
set sum 0
for {set j [expr $a - 1 ]} {$j < $b} {incr j} {
if {[fun_2 $j]} {
set sum [expr $sum + 1]
puts $j
if { $sum % 5 == 0} {
puts "\n"
}
}
}
return $sum
}
puts [fun_3 101 200]
Program 3
#判斷一個數是否是水仙花數
proc func_1 {x} {
set n 10
set k 100
#i=3
set i [expr $x %$n]
#j=5
set j [expr [expr $x / $n] % $n]
#z=1
set z [expr $x / $k]
# set y [expr [expr pow($i,3)]+ [expr pow($j,3)] +[expr pow($z,3)]]
set y [expr pow($i,3)+ pow($j,3)+ pow($z,3)]
if {$x == $y} {
return True
} else {
return false
}
}
#打印出所有的水仙花數:1)是一個三位數,2)是一個水仙花
for {set i 100} {$i < 1000} {incr i} {
if {[func_1 $i]} {
puts $i
}
}
Program 6
#最大公約數和最小公倍數
proc func_1 {a b} {
if {[expr $b % $a] == 0} {
puts $b
} else {
while {[expr $b % $a] != 0} {
set z [expr $b % $a]
set b $a
set a $z
}
puts $a
}
}
puts [func_1 27 36]
program 8
proc func_1 {} {
set a 3
set n 3
set q 10
#計算第n個數的大小
set x [expr $a * [expr [expr 1 - pow(10,$n)] / [expr 1 - $q]]]
#計算S=a+aa+aaa+aaaa+aaaaa的和
set sum 0
for {set i 1} {$i <= $n} {incr i} {
set x [expr $a * [expr [expr 1 - pow(10,$i)] / [expr 1 - $q]]]
set sum [expr $sum + $x]
}
return $sum
}
puts [func_1]