В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Goncharovskai
Goncharovskai
27.04.2021 04:36 •  Информатика

решить
Желательно написать это на языке С++


решить Желательно написать это на языке С++

Показать ответ
Ответ:
vikaya2911
vikaya2911
19.09.2020 19:58
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу.
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293

var
  x, y, a, b, k: integer;

begin
  k:=10000;
  repeat
    x:=k;
    a := 0; b := 0; y := 1;
    while x > 0 do
    begin
      if (x mod 10) mod 2 = 0
        then
        a := a * 10 + x mod 10
      else begin
        y := y * 10;
        b := b * 10 + x mod 10
      end;
      x := x div 10
    end;
    a := a * y + b;
    k := k + 1;
    until a = 26391;
    writeln(a:8, k-1:8); 
end.

 
0,0(0 оценок)
Ответ:

prev, curr, s = 0, 0, 0

n = int(input())

prev = int(input())

for i in range(1, n):

   curr = int(input())

   s += prev * curr

   prev = curr

print(s)

Объяснение:

На каждом шаге будем вычислять значение нужного произведения и прибавлять его к сумме. Так как второй элемент на i-ом шаге является первым элементом на i+1-ом шаге, заведём две переменные — предыдущий и текущий элемент — и после вычисления произведения перемещаем текущий элемент в предыдущий. Тогда каждый раз будет вычисляться верное произведение и все данные будут прочитаны один раз.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота