katushak29
?>

Найти сумму чисел 4-х значного числа используя линейный алгоритм

Информатика

Ответы

Anatolevich667
Var   n,s: longint; begin   write('введите натуральное четырехзначное число: ');   readln(n);   s: =n mod 10;   n: =n div 10;   s: =s+n mod 10;   n: =n div 10;   s: =s+n mod 10;   n: =n div 10;   s: =s+n;   writeln('сумма цифр введенного числа равна ',s) end. тестовое решение: введите натуральное четырехзначное число: 1745 сумма цифр введенного числа равна 17
Тимур Андраниковна634

Двоичный код имеет одноразрядное представление в задаче только при 0 и еще остается незначащий ноль, т.е число 0 будет иметь двоичный код 00.

Получается:

Д-00

Х-01

Р-10

О-11

В-100

Может появиться вопрос, почему В имеет двоичный код 100, а не 110, к примеру, или не 101

Алфавит(в этой задаче) состоит из 5 букв(N=5)

N=2^i

i=3, т.е на каждую букву по 3 символа

Д-000

Х-001

Р-010

О-011

В-100

нули перед кодом роли не играют(тоже самое в десятичной системе, число 5 можно записать как 05 или 005 и тд.), следовательно, их можно просто отбросить(за исключением 0, тк есть условие об одноразрядном представлении)

ХОРОВОД=011 110 111 001 100

Если код такого вида:

010 010 001 100 100

то

Д-100=4(в дес.с)

Х-01=1(в дес.с)

Р-10=2(в дес.с)

О-00=0(в дес.с)

В-11=3(в дес.с)

Однако в условии сказано, что буквам Д,Х,Р,О,В присваиваются дв.коды чисел 0,1,2,3,4 соответственно :)

PoleshchukTatyana

Решение 1:

nominative = 1  # окончания им.падеж: гриб

generative = [2, 3, 4]  # список окончаний род.падеж: гриба

plural_generative = [5, 6, 7, 8, 9, 0]  # список окончаний род.падеж множ-го: грибов

for number in range(0, 51):  # цикл с значением от 0 до 51

   """number % 10  возвращает последнюю цифру из числа"""

   if (number % 10) == nominative:  

       print(f"{number} гриб")

   elif (number % 10) in generative:

       print(f"{number} гриба")

   elif (number % 10) in plural_generative:

       print(f"{number} грибов")

Решение 2:

nominative = 1  # окончания им.падеж: гриб

generative = [2, 3, 4]  # список окончаний род.падеж: гриба

for number in range(0, 51):  # цикл с значением от 0 до 51

   """number % 10  возвращает последнию цифру из числа"""

   if (number % 10) == nominative:

       print(f"{number} гриб")

   elif (number % 10) in generative:

       print(f"{number} гриба")

   else:

       print(f"{number} грибов")

Объяснение:

В комментариях.

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

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

Найти сумму чисел 4-х значного числа используя линейный алгоритм
Ваше имя (никнейм)*
Email*
Комментарий*

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

Анна Елена
ananyananar
yelenaSmiryagin
yurogov61
Екатерина655
Иванович621
Koranna1986
Окунева-Мотова
razumeiko0790
Galinagol559
fshevxuzheva313
Агибалов428
ele922009226536
lovel24
aistenok-28