|
Функция на размышление | ☑ | ||
---|---|---|---|---|
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, кинь контакт в личку, с меня угощение!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |