#!/bin/bash echo "$1:" #5桁以上の$1は計算しない if [ $1 -ge 10000 ] then echo "the number must be four-digits." ; exit fi #3桁以下の$1は計算しない if [ $1 -le 999 ] then echo "the number must be four-digits." ; exit fi #4桁の数字を4つの数字に置き換える($a $c $e $f) a=$(($1/1000)) b=$(($1-$a*1000)) c=$(($b/100)) d=$(($b-$c*100)) e=$(($d/10)) f=$(($d-$e*10)) #xを定義し、10にならない計算のときに用いる x=1 #四則符号をXに置き換えてループ計算する($X1 $X2 $X3) for X1 in + - \* ; do for X2 in + - \* ; do for X3 in + - \* ; do s1=$(( $a $X1 $c $X2 $e $X3 $f )) s2=$(( ( $a $X1 $c ) $X2 $e $X3 $f )) s3=$(( $a $X1 ( $c $X2 $e ) $X3 $f )) s4=$(( $a $X1 $c $X2 ( $e $X3 $f ) )) s5=$(( ( $a $X1 $c $X2 $e ) $X3 $f )) s6=$(( $a $X1 ( $c $X2 $e $X3 $f ) )) s7=$(( ( $a $X1 $c ) $X2 ( $e $X3 $f ) )) #10になるとき、その計算式を表示させる #10になる式の数だけxに1ずつ足す if [ $s1 -eq 10 ] then echo "$a $X1 $c $X2 $e $X3 $f" ; x=$(($x + 1 )) fi if [ $s2 -eq 10 ] then echo "( $a $X1 $c ) $X2 $e $X3 $f" ; x=$(($x + 1 )) fi if [ $s3 -eq 10 ] then echo "$a $X1 ( $c $X2 $e ) $X3 $f" ; x=$(($x + 1 )) fi if [ $s4 -eq 10 ] then echo "$a $X1 $c $X2 ( $e $X3 $f )" ; x=$(($x + 1 )) fi if [ $s5 -eq 10 ] then echo "( $a $X1 $c $X2 $e ) $X3 $f" ; x=$(($x + 1 )) fi if [ $s6 -eq 10 ] then echo "$a $X1 ( $c $X2 $e $X3 $f )" ; x=$(($x + 1 )) fi if [ $s7 -eq 10 ] then echo "( $a $X1 $c ) $X2 ( $e $X3 $f )" ; x=$(($x + 1 )) fi done done done #xが1の時、10になる式はないので 注意文を表示させる if [ $x -eq 1 ] then echo "can't make 10." fi