-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCode
More file actions
53 lines (44 loc) · 1.85 KB
/
Copy pathCode
File metadata and controls
53 lines (44 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
# Проверяем правильность количества аргументов
if [ $# -ne 1 ]; then
echo "Usage: $0 <number>" # Выводим сообщение об использовании скрипта
exit 1
fi
show_help()
{
echo
echo "--------------------------------------------Помощь-------------------------------------------"
echo "Usage: $0 <number>"
echo " -h,-help Вывести эту справку"
echo "---------------------------------------------------------------------------------------------"
echo
}
if [[ "$1" == "-h" || "$1" == "-help" ]]
then
show_help
exit 0
fi
# Проверяем, что аргумент является положительным целым числом
if ! [[ $1 =~ ^[0-9]+$ ]] ; then
echo "Error: Argument must be a positive integer" # Выводим сообщение об ошибке ввода аргумента
exit 1
fi
if [ $1 -eq 0 ]; then
echo "Error: Argument must be a positive integer" # Выводим сообщение об ошибке ввода аргумента
exit 1
fi
number=$1 # Присваиваем переменной number значение первого аргумента
count=0 # Инициализируем счетчик шагов
# Запускаем цикл, пока число не станет равным 1
while [ $number -ne 1 ]; do
# Если число четное, делим его на 2
if [ $(($number % 2)) -eq 0 ]; then
number=$(($number / 2))
else
# Если число нечетное, умножаем его на 3 и добавляем 1
number=$(($number * 3 + 1))
fi
count=$(($count + 1)) # Увеличиваем счетчик шагов
echo "$count:$number" # Выводим номер шага и текущее число
done
exit 0 # Выходим из скрипта с кодом успешного завершения