- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
public class main {
public static void main(String[] args) {
Boolean[] table = new Boolean[1000001];
for(int i=2; i<=1000000; i++) {
table[i]=true;
}
Boolean cont=true;
int p=2;
while(cont) {
for(int i=2; i<=1000000; i++) {
try{
table[p*i]=false;
}
catch(Exception e) {}
}
int find=2;
while(!table[find]) find++;
if(find==2) {cont=false; break;}
p=find;
}
for(int i=2; i<=1000000; i++) {
if(table[i]) System.out.println(i);
}
}
}
На штатном класслоадере под виндой загрузило и с кривым регистром. Под линухой обломалось. Походу тупо приклеивает binary name по очереди к каждому пути из CLASSPATH, доклеивает .class и пытается открыть. А там уже от операционки зависит.
Только для никсов: делаем классы Test и test. На ФС винды один из них затрёт другой.
Только для винды: компилим класс Test в файл test.class. Линуха обломается при загрузке.
Прокатит разве? На уровне исходников уже надо 2 файла, а если бинарник в jar'е, то его ж уже запаковали. Или бинарник в неупакованном в виде?
Хотя.. линукс же умеет на ntfs записывать файлы, отличающиеся только регистром - я так один раз с виндовым каталогом на грабли наступил. Интересно, сумеет ли винда угдадать файл в таком варианте?
Я так торрент умудрился скачать линупсом на NTFS'ный раздел. В имени одного из файлов был вопросик. Виндовые проги его показывали, но ни открыть ни удалить не могли.
снес к хуям собачим винду ?
http://ithappens.me/story/185
А ещё под ДОСом собирается DotGNU и даже исполняет консольные приложения .NET.
public static void main(String[] args) {
for(int i=0;i<10000;i++){
if (i-2*(i/2)==1){
System.out.println(i);
}
}
}
}
public static void main(String[] args) {
for(int i=0;i<10000;i++){
if (i%2==1){
System.out.println(i);
}
}
}
}
public static void main(String[] args) {
for(int i=0;i<10000;i+=2){
{
System.out.println(i);
}
}
}
}
public static void main(String[] args) {
for (int i = 0; i < 100000; System.out.println(i+=2));
}
}
Это хорошо.
> переписать oddNumbersInRange
Обобщать - так по полной. Делай функцию, которая выбирает числа, которые при делении на N дают остаток R Или в самом общем виде - на входе получает предикат, и возвращает числа, для которых он вернул true... Можно ещё поиграться с итераторами вместо массивов, чтобы получить решение с O(1) по памяти.
Но, имхо, лучше попробуй более практичные задачки. Какую-нибудь простенькую игрушку или утилитку напиши. Там и проблемы будут возникать поинтереснее, и фана больше, и обстановка будет приближена к боевой...
Да не ссы, в процессе всё нужное найдешь. Все через это когда-то проходили... Ну а сейчас вам даже попроще - гугл есть под рукой.
> И правильно ли делаю
Да даже если неправильно - ничего страшного. С первого раза правильно писать, имхо, никому не удаётся. Постепенно опыта наберёшься, что-то подсмотришь у других, что-то подскажут. И будешь писать лучше ;) Да и единственно правильного способа почти никогда нет...
угу, и говно всякое советуют
!= для кого придумали?
> while(tempOdd<=rangeLast){
Ну раз уж количество выше посчитал, по нему бы и останавливал цикл.
amountOfOddInRange +=1;
без фигурных скобок и на разных строках. Убил бы.
P.S. А вот на одной строке писать такие штуки не стоит.
читабельней же
Акела лоханулся и дооптимизировался:
1) odd - нечётные;
2) некорректно определяет количество если начало и конец чётные.
Мама не учила писать юнит-тесты? https://ideone.com/qY8qNQ
Почему так сложно? Зачем столько странных значков?
По мне - так провести "валидацию", выровнять исходные данные - да и дело с концом.
https://ideone.com/SR8Dch
Ну или позаковыристей что-нибудь.
Въебал плюсца.
https://ideone.com/5JEK8Z
P.S. Эпичная задача, можно смело давать на собеседовании.
https://ideone.com/fSrVFy
Теперь возьмёте?
Да просто проверить после корректировки, что интервал не улетел.
Мда, серьёзная задачка.
В общем любая мелкая задача содержит много каверзных моментов
Писать код за анальные утехи - теперь я видел все
назови функцию нормально. PrintArray там