|
Есть ли java кодеры? Почему эта функция возвращает истину? | ☑ | ||
---|---|---|---|---|
0
Yrii-ay
18.05.18
✎
10:55
|
Почему код возвращает истину через одно место?)
public boolean sum28(int[] nums) { int c=0; boolean d=false; boolean dd=true; for(int i=0; i<nums.length; i++){ if(nums[i]==2 ){ c+= 2; } else if(c==8){ return dd; } } return d; } |
|||
1
Вафель
18.05.18
✎
10:57
|
в какой то момент с == 8
|
|||
2
Волшебник
18.05.18
✎
10:57
|
boolean d=false;
boolean dd=true; быдлокод детектед |
|||
3
Buster007
18.05.18
✎
10:58
|
такой г..код не должен работать. Комп должен сразу выключаться при попытке выполниться.
|
|||
4
Fragster
гуру
18.05.18
✎
10:58
|
зачем так через хуй?
|
|||
5
Yrii-ay
18.05.18
✎
10:59
|
Вот тут должна быть истина, а возвращает ложь?
sum28([1, 2, 2, 1, 2, 2]) → true false X |
|||
6
Вафель
18.05.18
✎
11:00
|
(5) все верно возвращает
|
|||
7
Fragster
гуру
18.05.18
✎
11:00
|
ну и если прочитать название функции, применить немного телепатии, то можно понять, что оно еще и неправильно работает. что-то типа сумма всех двоек в массиве равна восьми. но функция считает не это.
|
|||
8
Вафель
18.05.18
✎
11:00
|
по коду с==8, но следующие не должны быть 2ки в массиве
|
|||
9
Вафель
18.05.18
✎
11:01
|
нужно после цикла проверять
|
|||
10
Yrii-ay
18.05.18
✎
11:02
|
(2) Я только учусь)
|
|||
11
Yrii-ay
18.05.18
✎
11:02
|
(9) Спасибо
|
|||
12
Зуекщмшср
18.05.18
✎
11:03
|
Здесь и быдлокодером не надо быть, функция возвращает true после того, как нашла четыре nums[i]==2, и на следующем шаге возвращает true.
Убери из массива значения, равные 2, вернет false. И не делай переменные под булево. |
|||
13
Beduin
18.05.18
✎
11:03
|
(11)
public boolean sum28(int[] nums) { int c=0; boolean d=false; boolean dd=true; for(int i=0; i<nums.length; i++){ if(nums[i]==2 ){ c+= 2; } if(c==8){ return dd; } } return d; } |
|||
14
palladyi
18.05.18
✎
11:04
|
Я бы так сделал
or(int i=0; i<nums.length; i++){ if(c==8){ return dd; } if(nums[i]==2 ){ c+= 2; } } |
|||
15
Yrii-ay
18.05.18
✎
11:05
|
(12) Понял
|
|||
16
Fragster
гуру
18.05.18
✎
11:05
|
вот по этому в школе сначала учат рисовать блоксхемы
|
|||
17
Fragster
гуру
18.05.18
✎
11:07
|
да и даже само название лучше сделать другим, как минимум fourTwosInArray
|
|||
18
Вафель
18.05.18
✎
11:07
|
(14) не сработает, если 8 будет на последней цифре
|
|||
19
Волшебник
18.05.18
✎
11:08
|
(16) У java-кодеров другой подход: хуяк-хуяк и в продакшн.
|
|||
20
Yrii-ay
18.05.18
✎
11:08
|
(13) А если подать 5 двоек?
|
|||
21
Вафель
18.05.18
✎
11:08
|
какая постановка задачи?
|
|||
22
Yrii-ay
18.05.18
✎
11:09
|
(21) Дан массив целых чисел. Создайте Java-метод, который возвращает true в случае, если сумма всех элементов массива со значением 2 равна 8.
Примеры вызова Java-метода и возвращаемый результат: sum28([2, 3, 2, 2, 4, 2]) → true sum28([2, 3, 2, 2, 4, 2, 2]) → false sum28([1, 2, 3, 4]) → false |
|||
23
Вафель
18.05.18
✎
11:09
|
(22) ну так проверяй после цикла
|
|||
24
Адинэснег
18.05.18
✎
11:09
|
(21) пройти алгоритм в голове не заблудившись в двух итерациях цикла
|
|||
25
Вафель
18.05.18
✎
11:10
|
return (sum == 8)
|
|||
26
Yrii-ay
18.05.18
✎
11:10
|
(23) Ок
|
|||
27
Yrii-ay
18.05.18
✎
11:10
|
(25) Точно
|
|||
29
Fragster
гуру
18.05.18
✎
11:14
|
for(int i=0; i<nums.length && c <= 8 ; i++){
if(nums[i]==2 ){ c+= 2; } } return c == 8; } |
|||
30
Fragster
гуру
18.05.18
✎
11:14
|
ну там со скобочками подразобраться
|
|||
31
Йохохо
18.05.18
✎
11:17
|
только ИЛИ надо поставить, ошибка на примере 2)
|
|||
32
palladyi
18.05.18
✎
11:24
|
(18) Согласен((
|
|||
33
Fragster
гуру
18.05.18
✎
11:25
|
for(int i=0; i<nums.length && c <= 8 ; i++){
с += nums[i] == 2 ? nums[i] : 0; } return c == 8; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |