Вот один алгоритм (обозначения: М - 3-хлитр. банка, Б - 5-литр. банка):
1. Набрать 3 литра в М, перелить в Б.
2. Набрать 3 литра в М, перелить в Б, пока Б не заполнится.
3. Вылить воду из Б, перелить оставшийся литр из М в Б.
4. Набрать 3 литра в М.
Имеем 4 литра. Если надо иметь их в Б - перелить из М в Б.
Кто предложит еще один, тот выиграет, верно?
Мне немножко лень еще думать - вопроса-то все равно не имею.