4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
1

Записать условие, которое является истинным, когда только одно из чисел X, Y и Z кратно пяти

15.08.2016, 00:07. Показов 4863. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нельзя использовать + - * / . Пытался через 2 исключающих или но не работает когда все числа делятся на 5. Прошу помощи, а то совсем уже не могу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2016, 00:07
Ответы с готовыми решениями:

Записать условие, которое является истинным, когда только одно из чисел X и Y меньше 20
оператор сравнения <=2 . Нельзя использовать + - / * операторы. Задача просто ломает меня второй...

Записать условие, которое является истинным, когда только одно из чисел X, Y и Z кратно 5 (условные операторы)
Записать условие, которое является истинным, когда только одно из чисел X, Y и Z кратно пяти. При...

Записать условие, которое является истинным, когда только одно из чисел А и В четное
Здравствуйте. Помогите пожалуйста написать задачи. 1)Записать условие, которое является истинным,...

Записать условие, которое является истинным, когда только одно из двух заданных чисел является чётным
Записать условие, которое является истинным, когда: только одно из числе А и В четное:

7
Эксперт Java
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.08.2016, 12:36 2
Код
x%5!=0 && y%5!=0 && z%==0 ||
x%5!=0 && y%5==0 && z%!=0 ||
x%5==0 && y%5!=0 && z%!=0
1
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
15.08.2016, 17:54  [ТС] 3
xoraxax, а если можно использовать только 3 или меньше операторов сравнения?Просто забыл дописать это условие, оно и не дает покоя.
0
Эксперт Java
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.08.2016, 01:14 4
Запиши результаты сравнения в переменные, ну и дальше то же самое
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
16.08.2016, 01:26 5
(x/5 == 5 && y/5 !=5) || (y/5 == 5 && z/5 !=5)
0
Эксперт Java
2393 / 2219 / 564
Регистрация: 28.12.2010
Сообщений: 8,662
16.08.2016, 09:23 6
DavidKarchikyan, зачем читать условие задачи да?
0
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
16.08.2016, 16:07 7
АнатолийШ, получилось зубодробительно, конечно, но я не знаю, какв таких условиях это сделать меньше и без матлогики
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class Main  {
    public static void main(String args[]) {
        int x = 9;
        int y = 15;
        int z = 6;
        /* не используем сравнения и арифметические операции в А, В, С, 
         * они только чтобы формула не была длинной
         * Остаток от деления может быть 0, 1, 2, 3, 4, то есть
         * 000
         * 001
         * 010
         * 011
         * 100
         * Сдвигаем биты до 2 разрядов, складываем по ИЛИ и умножаем по маске 1
         * Результат будет равен 1, если остаток не равен 0
         * 
         */
        int A = ((x % 5)|((x % 5) >> 1)|((x % 5) >> 2)) & 1;
        int B = ((y % 5)|((y % 5) >> 1)|((y % 5) >> 2)) & 1;
        int C = ((z % 5)|((z % 5) >> 1)|((z % 5) >> 2)) & 1;
        System.out.println(A + " " + B + " " + C);
        /* Комбинации, устраивающие нас
         *  A B C
         *  0 1 1
         *  1 0 1
         *  1 1 0
         * 
         */
        
        int result = (~A & B & C) | (A & ~B & C) | (~A & ~B & C);
        System.out.println(result == 1);
        
    }
}
В итоге один оператор сравнения

Добавлено через 49 минут
Пардон, ошибочка вышла
Java
1
int result = (~A & B & C) | (A & ~B & C) | (A & B & ~C);
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11888 / 7261 / 1720
Регистрация: 25.07.2009
Сообщений: 13,285
17.08.2016, 11:20 8
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.Scanner;
import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import static java.lang.Math.abs;
 
class OnlyOneMultiFive {
    static boolean test(int x, int y, int z) {
        int[][] m = {
            { 1, 0, 0, 0, 0 },
            { 2, 0, 0, 0, 0 },
            { 4, 0, 0, 0, 0 }
        };
        int res = m[0][abs(x) % 5] | m[1][abs(y) % 5] | m[2][abs(z) % 5];
        
        return ( ( res == 1 ) || ( res == 2 ) || ( res == 4) );
    }
    
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        while ( true ) {
            int x, y, z;
            
            try {
                System.out.print("X = ");
                x = scan.nextInt();
                System.out.print("Y = ");
                y = scan.nextInt();
                System.out.print("Z = ");
                z = scan.nextInt();
            }
            catch ( InputMismatchException em ) {
                break;
            }
            catch ( NoSuchElementException es ) {
                System.out.println();
                break;
            }
            
            System.out.println((test(x, y, z)) ? "Ok." : "Fail.");
        }
    }
}

Не по теме:

Вообще-то в java вот так ввод проверять не правильно... Вроде бы...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2016, 11:20
Помогаю со студенческими работами здесь

Записать условие, которое является истинным, когда целое А не кратно трем и оканчивается нулем
Записать условие, которое является истинным, когда целое А не кратно трем и оканчивается нулем.

Записать условие, которое является истинным, когда целое А кратно двум или трем
5.1 Записать условие, которое является истинным, когда целое А кратно двум или трем.

Записать условие, которое является истинным, когда целое А не кратно трем и оканчивается нулем
Помогите плиз срочно нужно Добавлено через 29 минут var a, b: integer; n, i: real; begin...

Записать условие, которое является истинным, когда целое А кратно двум или трем;
Помогите решить задачи из небольшого сборника. Пожалуйста при решении задач нумеровать их. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru