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

Разбиение на невозрастающие слагаемые, лексикографический порядок Дано натуральное число N. Рассмотрим его разбиение на натуральные слагаемые. Два разбиения, отличающихся только порядком слагаемых, будем считать за одно, поэтому можно считать, что слагаемые в разбиении упорядочены по невозрастанию. Входные данные Задано единственное число N. (N ≤ 40) Выходные данные Необходимо вывести все разбиения числа N на натуральные слагаемые в лексикографическом порядке. Примеры
входные данные
5
выходные данные
1 1 1 1 1
2 1 1 1
2 2 1
3 1 1
3 2
4 1
5

Показать ответ
Ответ:
danya1338
danya1338
04.03.2022 03:50
Program fury; // название программы
const  // объявление константы
n=10; // сама константа n
var //объявление переменных
a:array[1..n]of integer;  // (сами переменные) объявлен массив а от 1 до n // типа integer ( целые числа  от −2 147 483 648  до 2 147 483 647 )
min,max,i,s:integer; // объявлены переменные min , max,a,s - названия ,
// типа integer
begin // начало
for i:=1 to n do // цикл который выполняет  повторно действие до тех пор, // пока условное значение не станет false (т.е число не превысит n);
read(a[i]); //cчитывет значение массива а . [i] в квадратных скобках // означает индекс числа . т.е a[1] - первое число массива
min:=1;max:=1; // присваивает переменным min и max значение 1
for i:=2 to n do  // уже описывал
begin 
if a[i] min:=i; // оператор сравнения ,  если условие подходит входит
// в цикл
if a[i]>a[max]then // оператор сравнения , если условие подходит входит
// в цикл
max:=i; // присваивает max значение i
end; // конец
if max>min then  / оператор сравнения , если условие подходит входит
// в цикл
for i:=min to max do  // описывал
s:=s+a[i] // к переменной s добавляет элемент a[i] 
else //  если условие if не выполнилось
for i:=max to min do // 
s:=s+a[i]; //
writeln(' S= ',s); // напечатать на новой строке то чему равно s
end.
0,0(0 оценок)
Ответ:
yli2220
yli2220
19.04.2023 22:13
Странно, вроде уже отвечал...
// Задание №1
var a,b,c:real;
begin
  writeln('Введите длины сторон треугольника');
  readln(a, b, c);
  if (a=b) and (b=c) and(a>0) then
     writeln('Равносторонний')
  else
     writeln('Не равносторонний');
end.
//Задание №2
var
  a, b, i, s: integer;

begin
  writeln('Введите левую границу диапазона');
  readln(a);
  writeln('Введите правую границу диапазона');
  readln(b);
  s := 0;
  for i := a to b do
    if i mod 2 <> 0 then s := s + i;
  writeln('Сумма Нечетных:', s);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота