echo "Enter A Number: "
read num
show=`expr $num`
flag=1
square=`expr $num \* $num`
while [ $num -gt 0 ]
do
flag1=`expr $num % 10`
flag2=`expr $square % 10`
if [ $flag1 -ne $flag2 ]
then
flag=0
break
fi
num=`expr $num / 10`
square=`expr $num / 10`
done
if [ $flag -eq 0 ]
then
echo $show "is NOT An Automorphic Number"
else
echo $show "is An Automorphic Number"
fi
自動識別番号を確認するコードです。デフォルトでは、この数字は四角形の末尾に表示されます。 625年末に25個が残ったようです。
入力5でのみ動作します。 25、76などでは動作しません。私はどこで間違っていますか?
ベストアンサー1
私は算術が好きではないので、計算を実行するサンプルプログラムをbash
書いています。awk
{len=length($1);
pow=$1 * $1;
div= 10^len;
if ($1 == pow % div) print $1 " is An Automorphic Number";
else print $1 " is not An Automorphic Number"}
入力番号の長さにのみ興味を持ち、それに応じて設定します。私のテストは次のとおりです。
[ ~]$ echo 1 |awk '{len=length($1);pow=$1 * $1; div= 10^len; if ($1 == pow % div) print $1 " is An Automorphic Number"; else print $1 " is not An Automorphic Number"}'
1 is An Automorphic Number
[ ~]$ echo 5 |awk '{len=length($1);pow=$1 * $1; div= 10^len; if ($1 == pow % div) print $1 " is An Automorphic Number"; else print $1 " is not An Automorphic Number"}'
5 is An Automorphic Number
[ ~]$ echo 76 |awk '{len=length($1);pow=$1 * $1; div= 10^len; if ($1 == pow % div) print $1 " is An Automorphic Number"; else print $1 " is not An Automorphic Number"}'
76 is An Automorphic Number