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

Дан массив из n целых положительных чисел(n не больше 1000),заполненный случайным образом (от 0 до 2000) 1. найти и вывести на экран все трехзначные числа,в которых на первом и последнем месте стоят одинаковые цифры(например 252) 2. подсчитать количество чисел,кратных 3 и не оканчивающихся на 5 и вывести на экран 3. найти сумму всех двузначных четных чисел и вывести на экран 4. найти в массиве числа из диапазона от 100 до 200 включительно и вывести на экран,если таких нет,то заменить все числа на 1 и вывести на экран

👇
Ответ:
Denhuk
Denhuk
23.02.2020

def func1(arr)

 arr.select { |item| (100..999).cover?(item) && (item / 100 == item % 10) }

end


def func2(arr)

 arr.count { |item| (item % 3).zero? && (item % 10 != 5) }

end


def func3(arr)

 sum = 0

 arr.each { |x| sum += x if x.even? && (10..99).cover?(x) }

 sum

end


def func4(arr)

 narr = []

 arr.each { |x| narr.push(x) if (100..200).cover?(x) }

 narr.empty? ? (arr.map { |x| x = 1 }) : narr

end


arr = Array.new(rand(2..1000))

arr.map! { |item| item = rand(0...2000) }

puts 'Исходный массив:'

puts arr

puts "\n1. Найти и вывести на экран все трехзначные числа,в которых на первом и последнем месте стоят одинаковые цифры: "

puts func1(arr)

puts "\n2. Подсчитать количество чисел,кратных 3 и не оканчивающихся на 5 и вывести на экран: "

puts func2(arr)

puts "\n3. Найти сумму всех двузначных четных чисел и вывести на экран: "

puts func3(arr)

puts "\n4. Найти в массиве числа из диапазона от 100 до 200 включительно и вывести на экран,если таких нет,то заменить все числа на 1 и вывести на экран:"

puts func4(arr)

4,7(22 оценок)
Открыть все ответы
Ответ:
DikarkaWaider
DikarkaWaider
23.02.2020
//Решение с использованием длинной арифметики
var i, j, sum, len, rem: integer;
    mult: array[1..1205] of integer;
begin
  len := 1;
  mult[1] := 1;
  i := 100;
  while i < 1000 do
  begin
    for j := 1 to len do
    begin
      rem := mult[j] * i + rem;
      mult[j] := rem mod 10;
      rem := rem div 10;
    end;
    while rem > 0 do
    begin
      inc(len);
      mult[len] := rem mod 10;
      rem := rem div 10;
    end;
    sum := sum + i;
    i := i + 2;
  end;
  writeln('Сумма: ', sum);
  write('Произведение: ');
  for i := len downto 1 do write(mult[i]);
  writeln;
end.

Результат работы программы:
Сумма: 247050
Произведение: 11663575674444359823002008139390746528142707402328361705647495301216245827892256323421573853031635648105175857107321864360366071385039128549679496343675509640183219826717346573458260381851930244150425562315833417515264123698581740276921937117732298873364203269398167251131992557619396626253824845619285980851485012131859200089180731617159967796785692496658820266554970195579987101761437467345295469560091019643416890744175485355715583034412689664621367823158491721734017238669568797130683826947437814864890599291484009747561514288528353178159298856645624289518581586947168677504742711452824976368290519747367284033226821443792754573564848344600041433089899538479032717299413920051538113896509134682791976736868238046387230383008696853107977931851651379555533347652931008271572588724198961970056163028633888796670948358527288343719100865852117339478785474064397937004993302565523495403857150309972891503340949896943795594807214141508464167055846685872109706922589562538698747726222566785521882450614299594376824656706451033378744188256788426310583732611392640652066952551824890922829689995132928000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4,7(45 оценок)
Ответ:
AnfisaCat
AnfisaCat
23.02.2020
Var   a: array[1..20,1..20] of integer;   n,m,i,j,min,jm,x: integer; begin   randomize;   write('Введите размеры массива: ');   readln(n,m);   writeln('Исходный массив:');   for i:=1 to n do   begin     for j:=1 to m do     begin       a[i,j]:=random(19)-9;       write(a[i,j]:4);     end;     writeln;   end;   min:=0;   for i:=1 to n do min:=min+a[i,1];   writeln('Сумма элементов 1-го столбца = ',min);   jm:=1;   for j:=2 to m do   begin     x:=0;     for i:=1 to n do       x:=x+a[i,j];     writeln('Сумма элементов ',j,'-го столбца = ',x);     if x<min then     begin       min:=x;       jm:=j;     end;   end;   writeln('Минимальная сумма в ',jm,'-м столбце');   writeln('Полученный массив:');   for i:=1 to n do   begin     for j:=1 to m do     begin       if j<>jm then a[i,j]:=a[i,jm];     write(a[i,j]:4);     end;     writeln;   end;   readln; end.
4,4(6 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ