#!/bin/bash
#countの桁数が4桁でない場合、「数字は4桁でないといけない」と出るようにします。
count=${#1}
if test $count -ne 4
then echo "the number must be four-digits"
fi
#入力された4桁の数字をそれぞれ4つの数字に分けます。
n1=`echo $1 | cut -c1`
n2=`echo $1 | cut -c2`
n3=`echo $1 | cut -c3`
n4=`echo $1 | cut -c4`
echo "$n1,$n2,$n3,$n4"
#結果を出すためのファイル(quiz2.txt)が既に書き出されているのならば、それを白紙にします。
if test -e quiz2.txt ; then
cat /dev/null >quiz2.txt
fi
#ここからは、計算していきます。()の置き方で11通りあるので、11回同じような演算を繰り替えしていきます。
#abcdの場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $n1 $i $n2 $j $n3 $k $n4 ))
if [ $ans = 10 ] ;
then echo " $n1 $i $n2 $j $n3 $k $n4 " >>quiz2.txt
fi
done
done
done
#(ab)cdの場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $(( $n1 $i $n2 )) $j $n3 $k $n4 ))
if [ $ans = 10 ] ;
then echo " ( $n1 $i $n2 ) $j $n3 $k $n4 " >>quiz2.txt
fi
done
done
done
#ab(cd)の場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $n1 $i $n2 $j $(( $n3 $k $n4 )) ))
if [ $ans = 10 ] ;
then echo " $n1 $i $n2 $j ($n3 $k $n4) " >>quiz2.txt
fi
done
done
done
#(ab)(cd)の場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $(($n1 $i $n2 )) $j $(( $n3 $k $n4 )) ))
if [ $ans = 10 ] ;
then echo " ($n1 $i $n2 ) $j ( $n3 $k $n4 ) " >>quiz2.txt
fi
done
done
done
#(abc)dの場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $(( $n1 $i $n2 $j $n3 )) $k $n4 ))
if [ $ans = 10 ] ;
then echo " ( $n1 $i $n2 $j $n3 )$k $n4 " >>quiz2.txt
fi
done
done
done
#a(bcd)の場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $n1 $i $(( $n2 $j $n3 $k $n4 )) ))
if [ $ans = 10 ] ;
then echo " $n1 $i ( $n2 $j $n3 $k $n4 ) " >>quiz2.txt
fi
done
done
done
#a(bc)dの場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $n1 $i $(( $n2 $j $n3 )) $k $n4 ))
if [ $ans = 10 ] ;
then echo " $n1 $i ( $n2 $j $n3 ) $k $n4 " >>quiz2.txt
fi
done
done
done
#((ab)c)dの場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $(( $(( $n1 $i $n2 )) $j $n3 )) $k $n4 ))
if [ $ans = 10 ] ;
then echo " ( ( $n1 $i $n2 ) $j $n3 ) $k $n4 " >>quiz2.txt
fi
done
done
done
#a(b(cd))の場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $n1 $i $(( $n2 $j $(( $n3 $k $n4)) )) ))
if [ $ans = 10 ] ;
then echo " $n1 $i ( $n2 $j ( $n3 $k $n4 ) ) " >>quiz2.txt
fi
done
done
done
#(a(bc))dの場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $(( $n1 $i $(( $n2 $j $n3)) )) $k $n4 ))
if [ $ans = 10 ] ;
then echo " ( $n1 $i ( $n2 $j $n3 ) ) $k $n4 " >>quiz2.txt
fi
done
done
done
#a((bc)d)の場合
for i in + - '*'
do
for j in + - '*'
do
for k in + - '*'
do
ans=$(( $n1 $i $(( $(( $n2 $j $n3 )) $k $n4 )) ))
if [ $ans = 10 ] ;
then echo " $n1 $i ( ( $n2 $j $n3 ) $k $n4 ) " >>quiz2.txt
fi
done
done
done
#ここで、10を作る式を作れなかったならば、この数字では10を作れませんという文章を表示させる。
#catで実際に作らせた式を表示させる。
if test -s quiz2.txt ; then
cat quiz2.txt
else echo "Can't Make 10"
fi