М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
AbiloWa
AbiloWa
02.06.2020 21:31 •  Информатика

Напишите программу, которая вычисляет сумму цифор только трехзначных чисел

👇
Ответ:
shlyakhovdaniik
shlyakhovdaniik
02.06.2020
Var a,b,c,d:integer;
begin
writeln('Введите число:');
readln(a);
if (a div 1000=0) and (a div 100>0)  then begin
b:=a div 100;
c:=a div 10 - (a div 100) * 10;
d:=a - (a div 10)*10;writeln(b+c+d);
end
else writeln('Вы ввели не трехзначное число.');
end.
4,6(84 оценок)
Открыть все ответы
Ответ:
MashaKun
MashaKun
02.06.2020
Данный код делает даже больше - подсчитывает сколькими можно перевести начальное число в конечное, и как именно.  Формат вывода подогнать не сложно

# Код на ruby 2.2.3p173
def f0(number, log) #
  n = 10 * number + 1
  log += " + 1 "
  log += "[" + n.to_s + "] "
  return [n, log]
end

def f1(number, log) #
  n = 2 * number
  log += " * 2 "
  log += "[" + n.to_s + "] "
  return [n, log]
end

def f2(number, log) #
  n = number + 4
  log += " + 4 "
  log += "[" + n.to_s + "] "
  return [n, log]
end

start_num = 14 # начальное число
end_num = 28 # конечное число
max_steps = end_num
op_numbers = 2
count = 0

for steps in 1..max_steps
  for i in 0..op_numbers**steps-1
      s = ("000000000000000000000000000000" + i.to_s(op_numbers))[-steps..-1]
      num = start_num
      log = start_num.to_s

      for k in 0..s.size - 1
          num, log = f0(num, log) if s[k] == "0"
          num, log = f1(num, log) if s[k] == "1"
          # num, log = f2(num, log) if s[k] == "2"
          break if num > end_num
      end
      # p [num, log, s, steps, i]
      if num == end_num
          log += " = " + end_num.to_s
          count += 1
          p log
      end
  end
end
p count
4,5(38 оценок)
Ответ:
zoobe1
zoobe1
02.06.2020
У вас неправильно даны исходные данные, но я их уже исправил.
В 1-ом примере:
делятся ли 11100111000111000111111111 : 111?
Во 2-ом примере:
делятся ли 1110010100011100011111111 : 1110?

1-ый пример:
Переводим из десятичной в двоичную
11100111000111000111111111 {2} = 60584447 {10}
111 {2} = 7 {10}
60584447 делится на 7 (можете сами проверить на калькуляторе), а это значит что исходные двоичные числа тоже делятся.

Также, чтобы проверить делимость числа на 111, или на cемь в десятичной системе, нужно разбить число на подгруппы, состоящие из трех чисел, и просуммировать их, если полученная сумма делится на 111, то и начальное число тоже делится
Примеры:
1) Делится ли 10001100 на 111.
100 + 011 + 000 = 111.
ответ: делится
2) Делится ли 001010100111 на 111.
001 + 010 + 100 + 111 = 1110 (допишем к этому числу необходимое количество нулей, и еще раз просуммируем)
1110 = 111000
111 + 000 = 111
ответ: делится

2-ой пример:
1110010100011100011111111 {2} = 30030079 {10}
1110 {2} = 14 {10}
30030079 уже не делится на 14, понятно,что и исходные двоичные числа не делятся

Это можно проверить и другим Число делится на 14, только если оно делится на 7, и на 2. Проверка делимости на 7 уже известна, а для проверки делимости на 2, нужно просто проверить делится ли на него последняя цифра числа. Например, 936 делится на 2, так как 6 делится. В двоичной системе надо взять первые 4 разряда и проверить их делимость на 0010.
Пример:
0101 0110 1010 : 1110?
010 + 101 +101 + 010 = 1110
111 + 000 = 111 => Это число делится на 7, или 111 в двоичной.
Теперь проверим делимость на два. Возьмем первые 4 разряда - 1010.
1010 {2} = 10 {10}
10 делится на 2.
ответ: раз число делится на 7, и на 2, то оно делится и на 14, то есть на 1110 {2}.
4,4(34 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ