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