Сильный конек JavaRush - изобилие практики, что сильно способствует закреплению данного на лекциях материала. Здесь 95% задач с уклоном в практику написания прикладных или серверных программ.
Это здорово закрепить на практике поданные на лекциях материалы (коллекции, дженерики, массивы, многопоточность и т.п.) или поэтапно создавать и рефакторить задачи со множеством классов и их взаимодействия (big-и). Как глоток свежего воздуха встречаются алгоритмические задачи (все, наверное, вспоминают последний бонус 20го уровня, построения бинарного дерева-списка), но их число не велико. Оно и понятно, курс посвящен прикладной практике, а не алгоритмике (которая требует гораздо больше теории кибернетики и математики).
Тем, кто в чем то похож на меня в плане иногда немного отвлечься и потренировать больше математические навыки в программировании, рекомендую http://codeforces.com/ . Тамошние задачи можно решать (помимо прочих языков программирования) и на Java 7/8.
Пул задач (помимо них устраиваются и соревнования), доступен на http://codeforces.com/problemset . Помимо них есть и соревнования и т.п.
100% принимает решение в единственном java-файле c использованием пакета по умолчанию (то есть нет java-файле указания package) и точкой входа public static void main(String[] args). Другие варианты отправки решения я не пробовал.
Приведу пример самой простой задачи ( http://codeforces.com/problemset/problem/1/A ) с решением (воспринимайте как тестовый пример), чтобы могли использовать как болванку при решении других:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class task1A {
/*
Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров.
По случаю очередного юбилея города, было принято решение о замощении площади
квадратными гранитными плитами. Каждая плита имеет размер a × a.
Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть
плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно.
Гранитные плиты нельзя ломать или дробить, а разрешено использовать только целиком.
Границы плит должны быть параллельны границам площади.
Входные данные
В первой строке записано три целых натуральных числа n, m и a (1 ≤ n, m, a ≤ 10^9).
Выходные данные
Выведите искомое количество плит.
*/
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] s=reader.readLine().split(" ");
long n = Long.parseLong(s[0]);
long m = Long.parseLong(s[1]);
long a = Long.parseLong(s[2]);
reader.close();
long cntSide1 = n/a + (int) Math.signum(n%a);
long cntSide2 = m/a + (int) Math.signum(m%a);
System.out.print(cntSide1*cntSide2);
}
}
После создания программы и самостоятельного ее тестирования - загружайте файл на сайт, проверка начнется в ближайшее время и вы можете наблюдать за ее процессом. Дополнительно можно посмотреть тестовые данные в процессе проверки и использовать их для коррекции программы в случае провала одного из тестов.
P.S. Если администрация сочтет рекламой стороннего ресурса - можете удалить. Хотя лично я считаю, что дополнительная зарядка мозгам в плане алгоритмики не помешает.
P.S.S. Если есть другие подобные ресурсы - пишите в комментариях (лучше в развернутых - плюсы, минусы и примеры решенных тестовых задач для легкого старта другим).
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
А ресурсов действительно много. Ни в коем случае не буду отговаривать от их использования, как источника дополнительной практики.