officialandrey
@officialandrey

Что значат эти ошибки?

УСЛОВИЕ если нужно
В банкомате имеются в достаточном количестве купюры 10, 20 50, 100, 200 и 500 грн. Найти минимальное количество купюр, которое необходимо использовать, чтобы выдать сумму N грн. или вывести -1, если указанную сумму выдать нельзя.

Формат входных данных
Первая строка стандартного потока ввода содержит количество тестовых случаев Т. Каждый тестовый случай - это сумма N, которую необходимо выдать, записанная в отдельной строке. 1 ≤ N ≤ 10000.

Формат результата
Для каждого тестового случая выведите в отдельную строку стандартного потока вывода единственное число - минимальное количество купюр, необходимое, чтобы выплатить указанную сумму.


Примеры
Входные данные
4
120
770
1000
11
Результат работы
2
4
2
-1

ОШИБКИ
5c79a97e4b83a512805335.png5c79a984ed4f4670195382.png
main.sh: line 9: ((: i<4
: syntax error: invalid arithmetic operator (error token is "
")
main.sh: line 12: 120
/500: syntax error: invalid arithmetic operator (error token is "
/500")

#!/bin/bash
read size
banknote=(500 200 100 50 20 10)
for ((i=0; i<$size; i++))
do
	read n
	x=0 # x - количество купюр
	q=0 # q - вспомогательная переменная в цикле
	for ((j=0; j<6; j++)) # цикл перебирает все элементы массива, от большего к меньшему
	do
		q=${banknote[j]}
		x=$(($x+$(($n/$q)))) # считаем, сколько раз входит купюра в сумму
		n=$(($n%$q)) # сумме присваивается остаток от деления на данную купюру
	done
	if (( $n>0 )) # проверяем наличие остатка, который банкомат не сможет выдать
	then
		x=-1
	fi
	lot[$i]=$x
done
printf "%d\n" ${lot[@]}
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы