vitalina3012
?>

На вход алгоритма подаётся натуральное число n. алгоритм строит по нему новое число r следующим образом. 1) строится двоичная запись числа n. 2) к этой записи дописывается справа бит чётности: 0, если в двоичном коде числа n было чётное число единиц, и 1, если нечётное. 3) к полученному результату дописывается ещё один бит чётности. полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа n) является двоичной записью искомого числа r. укажите минимальное число r, большее 180, которое может быть получено в результате работы этого алгоритма. в ответе это число запишите в десятичной системе

Информатика

Ответы

Алина1564
1. Установим допустимые сочетания двух последних битов (битов четности).
Если в N было четное количество единиц, то дописывается ноль. Поскольку ноль не меняет количества единиц, второй бит четности тоже будет нулевым. Правило №1: Если в двоичном представлении четное количество единиц, то дописывается 00.
Если в N было нечетное количество единиц, то дописывается единица. Это меняет количество единиц на четное, поэтому второй бит четности будет нулевым. Правило №2: Если в двоичном представлении нечетное количество единиц, то дописывается 10.

Первое число R, большее 180, это 181. Переведем его в двоичную систему счисления.
181₁₀ = 10110101₂
Мы видим, что оба наших правила нарушены, т.е. число 181 не подходит в качестве R.
Представление N (101101) содержит четное количество единиц, а для четного количества действует Правило №1 и мы должны записать 00, что уменьшит наше минимально возможное число R=181₁₀
Но если мы в числе N поменяем местами два правых бита, получим число 101110, которое больше чем 101101 и теперь по все тому же Правилу №1 мы получаем право приписать два нолика и получить R=10111000₂ = 184₁₀
Volkov
Да без проблем!

gcd(77164189341682084692124351766096496451364840671846455244761, 46668734283684548617206823665104829826096872771679324943689);

448643232670469

a:=ifactor(77164189341682084692124351766096496451364840671846455244761);

   4                                                            
(3)  (11) (503) (809) (573384723060967) (448643232670469) (492166512383869) (1680979)

b:=ifactor(46668734283684548617206823665104829826096872771679324943689);
(781199815286623) (283598494080047) (448643232670469) (39869)
(11776697129)

Вычислите наибольший общий делитель чисел 7716418934168208469212435176609649645136484067184645524476
evavard
Язык не указан, Default-Language это C. На нём и напишу.
1.
#include <stdio.h>
int main() {
    int n;
    scanf("%d", &n);
    if (n % 10 == 4 || n % 10 == 7 || n / 10 == 4 || n / 10 == 7)
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}
Для порядку скажу что на Perl это можно реализовать проще.
#!perl
%h { 4 => 0, 7 => 0};
<>;
if (exists $h{$_%10} || exists $h{$_/10}) {
    print "YES\n";
else {
    print "NO\n";
}
Но мы ушли от темы. Итак, 2. Тут всё ещё проще:
#include <stdio.h>
int main() {
    int n;
    scanf("%d", &n);
    if (!(n % 3))
        printf("Multiple of 3\n");
    else
        printf("Not multiple of 3\n");
    if (n % 10 == 3)
        printf("Ends by 3\n");
    else
        printf("Not ends by 3\n");
    return 0;
}
Тут более простой реализации на другом известном мне языке нету, так что приводить дополнительно ничего не буду.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

На вход алгоритма подаётся натуральное число n. алгоритм строит по нему новое число r следующим образом. 1) строится двоичная запись числа n. 2) к этой записи дописывается справа бит чётности: 0, если в двоичном коде числа n было чётное число единиц, и 1, если нечётное. 3) к полученному результату дописывается ещё один бит чётности. полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа n) является двоичной записью искомого числа r. укажите минимальное число r, большее 180, которое может быть получено в результате работы этого алгоритма. в ответе это число запишите в десятичной системе
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

lidiya08083268
vis-lyubov8832
СергейНиколаевич
egoryuzbashev
mvinogradov6
Eduardovich_Sergei1062
wwladik2606222
ank9809
Вера1072
Ulianev77
nailya-abdulova25
amayonova
Fruktova Gazaryan
Alekseevich_Viktorovna
cosmetic89