Сильный конек 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. Если есть другие подобные ресурсы - пишите в комментариях (лучше в развернутых - плюсы, минусы и примеры решенных тестовых задач для легкого старта другим).
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
P.S. Все таки приятно решить задачку, особенно если ее решило до тебя чуть больше тысячи человек (при условии, что более простые задачи решило под 40к участников). Попробую замахнуться на задачу, которую решило меньше 1000 :). (Я про codeforces).
А ресурсов действительно много. Ни в коем случае не буду отговаривать от их использования, как источника дополнительной практики.
Понимаю, что не все понятно по реализации, но тем не менее, без указания сроков, пожалуйста, приподнимите тайную завесу :)