Posted to tcl by dbohdan at Sat May 09 18:44:24 GMT 2015view raw

  1. set num {1 2 3 4 5 6 7 8 9}
  2. set correct {}
  3.  
  4. for { set i 0 } { $i < 3 ** ([llength $num] - 1) } { incr i } {
  5. set n $i
  6. set s {}
  7. set t $num
  8. while { [llength $t] > 0 } {
  9. append s [lindex $t 0]
  10. set t [lrange $t 1 end]
  11. switch -exact -- [expr { $n % 3 }] {
  12. 0 {}
  13. 1 { append s - }
  14. 2 { append s + }
  15. }
  16. set n [expr { $n / 3 }]
  17. }
  18. if { [expr $s] == 100 } {
  19. lappend correct $s
  20. }
  21. }
  22. puts [llength $correct]\n\t[join $correct \n\t]
  23.