|   |   | 
| 
 | Функция на размышление | ☑ | ||
|---|---|---|---|---|
| 0
    
        1nvertex 02.11.16✎ 22:47 | 
        Нужна функция F(Х,У) с двумя параметрами, где
 Х - целочисленное от 1 до 11111. Все числа внутри либо 0 либо 1 У - число от 1 до 5 Функция должна возвращать число из Х по номеру У Например: F(10101,3) = 1 F(10101,4) = 0 F(10110,1) = 1 F(1001,1) = 0 Функции доступны только арифметические операции, условия и циклы. Строковые операции недоступны. Как решить? | |||
| 1
    
        1nvertex 02.11.16✎ 22:48 | 
        Округления тоже недоступны     | |||
| 2
    
        vde69 02.11.16✎ 23:01 | 
        типа того (наверно ошибки есть но суть понятна)
 если x%(y**10) > 0 тогда возврат 1 иначе возврат 0 | |||
| 3
    
        Lama12 02.11.16✎ 23:04 | 
        (0) Хорошая попытка.:-) Промолчу, пусть молодежи подумает. | |||
| 4
    
        Serg_1960 02.11.16✎ 23:07 | 
        Смеха ради вспомнилось :)
 Автор: vde69 мЧисло = ТвоеЧисло % 256; Бит8 = (мЧисло - (мЧисло % 128)) > 0 мЧисло = мЧисло % 128; Бит7 = (мЧисло - (мЧисло % 64)) > 0 мЧисло = мЧисло % 64; Бит6 = (мЧисло - (мЧисло % 32)) > 0 мЧисло = мЧисло % 32; ... | |||
| 5
    
        Serg_1960 02.11.16✎ 23:22 | 
        Цифра1 = Х - Цел(Х/10)*10;
 Х = Цел(Х/10); Цифра2 = Х - Цел(... | |||
| 6
    
        GedKo 02.11.16✎ 23:29 | 
        а почему?
 >F(1001,1) = 0 | |||
| 7
    
        GedKo 02.11.16✎ 23:30 | 
        Затупил, снимаю вопрос :(     | |||
| 8
    
        GedKo 02.11.16✎ 23:31 | 
        Затупил дважды, поднимаю обратно :)     | |||
| 9
    
        Serg_1960 02.11.16✎ 23:41 | 
        Хмм... думаешь автор не может тупить? Ты - можешь, а он - нет? Сама его тема говорит об обратном :)
 PS: просто ошибка в последнем примере - не дописал нолик. По условию ясно же, что должно быть пять разрядов в числе. | |||
| 10
    
        Злопчинский 02.11.16✎ 23:46 | 
        Сильно смахивает на что-то с двоичным основанием,     | |||
| 11
    
        Asmody 02.11.16✎ 23:49 | 
        (0) Автор, ты разницу между числом и цифрой понимаешь?     | |||
| 12
    
        Злопчинский 02.11.16✎ 23:56 | 
        (11) число не является цифрой, но  цифра сама по себе обозначает число, не придирайся     | |||
| 13
    
        GedKo 03.11.16✎ 00:01 | 
        (12) вранье :)     | |||
| 14
    
        Йохохо 03.11.16✎ 00:09 | 
        что то было, что при сдвиге бит переполнения устанавливался, 2^5 -х - 1 двигаем и вуаля     | |||
| 15
    
        Asmody 03.11.16✎ 00:28 | 
        (12) шта?!
 цифра ничего сама по себе не обозначает. цифра - это символ, крючок. напротив, число - суть вещь. оно существует независимо от каких-то цифр. | |||
| 16
    
        Злопчинский 03.11.16✎ 00:38 | 
        (15) если у тебя нет символов обозначающих сущность ты не сможешь работать с этой сущностью     | |||
| 17
    
        Mauser 03.11.16✎ 00:43 | 
        (12), (16) Ты еще скажи, что у числа есть позиция     | |||
| 18
    
        shpioleg 03.11.16✎ 00:52 | 
        (0) Вроде работает
 
 | |||
| 19
    
        shpioleg 03.11.16✎ 00:54 | 
        +(18) Верней
 X = (X - Остаток)/10; | |||
| 20
    
        Злопчинский 03.11.16✎ 01:32 | 
        (18) некузяво % - некошерная операция, не подходит по условиям задачи | |||
| 21
    
        kuzyara 03.11.16✎ 03:21 | 
        F = x & 1 << y     | |||
| 22
    
        wertyu 03.11.16✎ 05:22 | 
        Функция F(Знач Х, Знач У)
 Перем Цифра; Для НЦ = 1 По 5 Цикл Множитель = 1; Для Степень = 1 По 5 - НЦ Цикл Множитель = Множитель * 10; КонецЦикла; //Множитель = Pow(10, 5 - НЦ); Х = Х - Множитель; Если Х >= 0 Тогда Цифра = 1; Иначе Цифра = 0; Х = Х + Множитель; КонецЕсли; Если НЦ = У Тогда Прервать; КонецЕсли; КонецЦикла; Возврат Цифра; КонецФункции | |||
| 23
    
        wertyu 03.11.16✎ 05:26 | 
        пожалуй уберу "Прервать"
 Функция F(Знач Х, Знач У) Перем Цифра; Для НЦ = 1 По У Цикл Множитель = 1; Для Степень = 1 По 5 - НЦ Цикл Множитель = Множитель * 10; КонецЦикла; //Множитель = Pow(10, 5 - НЦ); Х = Х - Множитель; Если Х >= 0 Тогда Цифра = 1; Иначе Цифра = 0; Х = Х + Множитель; КонецЕсли; КонецЦикла; Возврат Цифра; КонецФункции | |||
| 24
    
        d546 03.11.16✎ 08:21 | 
        (20) Смотрим справку
 Арифметические операции В языке определены следующие виды арифметических операций: сложение (Оп1 + Оп2) вычитание (Оп1 - Оп2) умножение (Оп1 * Оп2) деление (Оп1 / Оп2) остаток от деления (Оп1 % Оп2) унарный минус (-Оп1) | |||
| 25
    
        Ildarovich 03.11.16✎ 10:56 | 
        Вот еще вариант:[CODE]Функция Ф(Х, У)
 Возврат ?(У < 2, 0 + (Х > 9999), Ф((Х - 10000 * (Х > 9999)) * 10, У - 1)) КонецФункции[/CODE] | |||
| 26
    
        Ildarovich 03.11.16✎ 10:57 | 
        +(25) ...  Функция Ф(Х, У)
 | |||
| 27
    
        Лефмихалыч 03.11.16✎ 10:59 | 
        (0) почему у тебя
 F(10110,1) = 1 и F(1001,1) = 0 ? | |||
| 28
    
        Лефмихалыч 03.11.16✎ 11:00 | 
        (0) log10() можно использовать?     | |||
| 29
    
        shpioleg 03.11.16✎ 11:04 | 
        (27) У него со старших битов начинается. Если разрядность маленькая, то спереди нули. Я так понял...     | |||
| 30
    
        1nvertex 03.11.16✎ 17:48 | 
        Во вы тут накодили! =)))     | |||
| 31
    
        1nvertex 03.11.16✎ 17:48 | 
        (28) Не... нельзя     | |||
| 32
    
        1nvertex 03.11.16✎ 17:49 | 
        (27) Да, все верно F(1001,1) = 0 потому что первое число отсутствует     | |||
| 33
    
        1nvertex 03.11.16✎ 17:58 | 
        (23)  wertyu, работает!     | |||
| 34
    
        1nvertex 03.11.16✎ 18:00 | 
        (26) Ildarovich, круто!!!     | |||
| 35
    
        1nvertex 03.11.16✎ 18:09 | 
        (18) shpioleg - читер (%), зато самый скоростной =))     | |||
| 36
    
        1nvertex 03.11.16✎ 18:15 | 
        Ildarovich, кинь контакт в личку, с меня угощение!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |