|
|
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
В общем решаю задачки из сборника Златопольского Наткнулся на интересную постановку задачи: Даны 2 целых числа A и B. Если A делится на B или B делится на А (имеется ввиду без остатка), то вывести 1, иначе любое другое число. Условные операторы и операторы цикла не использовать. Моих познаний в Java пока не хватает для решения задачи с таким условием. Поделитесь опытом или подскажите направление куда копать, не обязательно на Java. Да и больше интересует логическое направление а не само решение с кодом (код предлагаю под спойлер). 2-х часовое Google'ение навело на мысль что нужно полиморфизм использовать, но до конкретных вещей все равно не могу дойти =). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 01:18 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Warl0ck_01, Полиморфизм не нужен . Решение в одну строчку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 01:44 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
с1=a/b c2=b/a print(c1*c2 + 1) А вообще от решения таких задач скиллов в программировании сильно не прибавится.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 01:47 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
забыл про спойлер, не знаю как отредачить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 01:49 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
забыл никс1=a/b c2=b/a print(c1*c2 + 1) А вообще от решения таких задач скиллов в программировании сильно не прибавится.. Что не совсем понятно решение: при любых a и b результат c1*c2 + 1 будет равен 2. Где подвох? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 14:44 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Warl0ck_01Где подвох? В непонимании целочисленного деления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 14:52 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Warl0ck_01, Например, a=3 , b=1. Проверяем int c1=a/b (=?) int c2=b/a (=?) и наконец c1*c2+1 равно? Так что не всегда 2. Но и 1 немного не верен: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 14:56 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, try { } catch() {} Можно не считать условным оператором? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:05 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
а я бы вот так: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:06 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
И вообще делится ли 0 на 0? Вот в чем вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:06 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Grglgn, Math.abs(a%b) Ожидается нецелочисленность остатка от деления целых чисел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:08 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, я не ожидал нецелочисленность. а что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:14 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, но ожидается отрицательность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:18 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, можно, наверное, доказать как-то что этот abs тут лишний, но я уж на всякий случай, так сказать... Долго не думал, просто вдруг возникло решение, сразу и написал - не коммерческий продукт, все таки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:21 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Grglgn, Math.abs - это читинг - внутре сравнение то наверняка есть. А при какой отрицательности 0 при % появится ложно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:23 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Grglgn, Осталось добавить безусловную проверку на 0 (он ведь целое число). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:25 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, на случай если при сложении взаимоунчитожатся . Ну да, посмотрел на это внимательнее, не нужны абсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:39 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевGrglgn, Осталось добавить безусловную проверку на 0 (он ведь целое число). нет, ну на это уже нет времени :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:40 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевMath.abs - это читинг - внутре сравнение то наверняка есть. Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:44 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
для a=b предложенное решение не годится. Я бы еще умножил на (a-b) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:54 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
^ имелась в виду манипуляция с остатками, а не деление, как предложено вначале )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 17:10 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевWarl0ck_01, Например, a=3 , b=1. Проверяем int c1=a/b (=?) int c2=b/a (=?) и наконец c1*c2+1 равно? Так что не всегда 2. Но и 1 немного не верен: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. как я понял данная реализация не является решением с учетом условий задачи. Господа а задача вообще имеет решение в такой постановке условия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:01 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Разобрался. На мысль конечно навели =). Спасибо. Код: public class Task02_043 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter two numbers"); int a = in.nextInt(); int b = in.nextInt(); System.out.println(checkNumbers(a, b)); } private static int checkNumbers(int a, int b) { int result = (a%b)*(b%a) + 1; return result; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:31 |
|
||
|
Интересная постановка задачи
|
|||
|---|---|---|---|
|
#18+
Warl0ck_01, опять же по правилам математики: - 0 число целочисленное - 0 делится без остатка на любое целое число кроме самого себя - на 0 делить нельзя, а значит и без остатка тоже. Т.е. чтобы задачка стала интересной. В случае если одно из чисел 0 надо вывести 1, а в случае если оба - не 1. И это без проверок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 11:17 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38921784&tid=2125611]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
130ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 406ms |

| 0 / 0 |
