私はスクリプトに初めて触れ、私の使命は100を見つけることです。回門次のアルゴリズムを使用する数値:
- 2つの乱数を取得します(10より大きい)。
- リバース番号
- 数字とその逆数を加える
- 合意結果が回文の場合は印刷してください。それ以外の場合は、ステップ2に戻ります。
たとえば、
- 開始数量:75
- 裏面は57
- 合計は 75+57 = 132 です。
132は回文番号ではないため、ステップ2に戻ります。
- その反対は321です。
- 132+321=363
- 363は回文数です。標準出力で印刷してください!
そして、そのような数字が100個まで印刷されるまで続きます。
これが私が今まで持っているものです:
#! /bin/bash
CONT=0
while [ $CONT -lt 100 ]
do
NUM= $RANDOM
while [ $SUM -ne $SUMINV ]
do
echo $NUM > file.txt
INV= rev file.txt
SUM= `expr[ $NUM + $INV ]`
echo $SUM > file2.txt
SUMINV= rev file2.txt
NUM= $SUM
done
echo $NUM
CONT=`expr $CONT + 1`
done
このスクリプトの解決策と助けを探しています!
ベストアンサー1
私が知るには、まず2桁の数字を受け取る必要があります。
- 10より大きい 100より小さい
- 10で割らない(20、30などではない)
- 回門ではない(22、33などではありません)
だからあなたはそれを通して到達することができます
while :
do
a=$[$RANDOM%10]
b=$[$RANDOM%10]
if [ $a -ne $b -a $a -ne 0 -a $b -ne 0 ]
then
NUM="$a$b"
RNUM="$b$a"
break
fi
done
次に、数字の合計と反転を確認してください。
while :
do
NUM=$[$NUM+$RNUM]
RNUM=$(printf "%d" $NUM | rev)
if [ $NUM -eq $RNUM ]
then
echo $NUM
break
fi
done