Задача 1: Отпуск Иван Петрович взял отпуск продолжительностью n дней. Первый день отпуска выпадает на день недели под номером d (1 — понедельник, 2 — вторник, ..., 7 — воскресенье). Иван Петрович любит ездить отдыхать на Кипр. Но вылеты на Кипр из его родного города есть только по понедельникам, а обратно — только по воскресеньям. Иван Петрович хочет понять, какое максимальное количество недель он сможет провести на Кипре в свой отпуск (день прилёта и день обратного вылета Иван Петрович считает днями, проведёнными на Кипре ему вычислить это.
Входные данные
В первой строке входных данных записано целое число n (1 ≤ n ≤ 109) — продолжительность отпуска. Во второй строке записано целое число — d (1 ≤ d ≤ 7) — номер дня недели первого дня отпуска.
Выходные данные
Требуется вывести одно целое число — количество недель, которое Иван Петрович проведёт на Кипре.
Задача 2: Гирьки
У Васи есть чашечные весы и набор гирек. Правда, в наборе предусмотрены гирьки только двух различных весов: 1 и 2 грамма. Набор не пустой, но гирьки одного из весов могут быть потеряны и полностью отсутствовать. Вася пытается разложить все имеющиеся гирьки на обе чаши весов так, чтобы весы оказались в равновесии (то есть разложить все гирьки на две кучки одинакового веса). Оказалось, что у него имеется n1 гирек весом 1 грамм и n2 гирек весом 2 грамма. Получится ли у него это?
Входные данные
В первой строке входных данных записано целое число n1, во второй — n2 (n1 ≥ 0, n2 ≥ 0, 0 < n1 + n2 ≤ 2×109).
Выходные данные
Если разложить гирьки на две равные кучки возможно, пограмма должна вывести слово Yes, в противном случае — No.
Если гирьки разложить возможно, то во второй строке требуется вывести два целых числа в указанном порядке: количество гирек весом 1 грамм и количество гирек весом 2 грамма в одной из кучек в разложении. Если вариантов разложения несколько, требуется вывести любой из них.
Задача 3: Конструктор
Сереже на первое сентября подарили магнитный конструктор, состоящий из брусков разной длины, которые могут соединяться концами друг с другом. В подарочном наборе все бруски уложены в порядке неубывания длины, причем бруски могут иметь одинаковую длину — это очень важно для Серёжи, потому что он будет собирать из брусков равносторонние треугольники для своего большого проекта. Для этого проекта Серёже нужно очень много деталей такой формы, и он хочет понять, сколько всего возможно собрать равносторонних треугольников из конструктора для последующего их одновременного использования в проекте. Размеры треугольников могут быть различными, но все они должны быть равносторонними. Определите, какое максимальное количество равносторонних треугольников можно собрать из конструктора (брусок, использованный в одном треугольнике, уже не может быть использован в другом).
Входные данные
В первой строке входных данных дано целое число n — количество брусков (1 ≤ n ≤ 105). В следующих n строках даны длины брусков конструктора — целые числа от 1 до 109 по одному в строке. Числа даны в неубывающем порядке.
Выходные данные
Требуется вывести одно целое число — максимально возможное число равносторонних треугольников.
Program pr;
uses crt;
Var a, b, c,x1,x2,x3:integer;
Begin
Writeln('Введите a, b, c');
readln(a, b, c);
if (a<=b) and (b<=c) then
Begin
a:=a*a*a;
b:=b*b*b;
c:=c*c*c;
Writeln(a);
Writeln(b);
Writeln(c);
end;
if (a>b) and (b>c) then
Begin
a:=a*(-1);
b:=b*(-1);
c:=c*(-1);
Writeln(a);
Writeln(b);
Writeln(c);
end
else
if (a<b) and (a<c) then Begin b:=a; c:=a; Writeln(a); Writeln(b); Writeln(c); end;
if (b<a) and (b<c) then Begin a:=b; c:=b; Writeln(a); Writeln(b); Writeln(c); end;
if (c<a) and (c<b) then Begin a:=c; b:=c; Writeln(a); Writeln(b); Writeln(c); end;
readln;
end.
Я так понимаю, что "номер максимального элемента" это на самом деле индекс.(иначе было бы написано "значение максимального элемента") Не забываем, что индексация массива ничинается с нуля.
#include <iostream>
using std::cout;
using std::endl;
#include <cstdlib>
using std::rand;
using std::srand;
#include <ctime>
using std::time;
int main()
{
int a[15];
int largestIndex = 0, counter = 0;
srand(time(0));
for(int i = 0; i < 15; i++)
{
a[i] = rand() % 21 - 10;
if(a[i] < 0)
{
counter++;
}
if(a[largestIndex] < a[i])
{
largestIndex = i;
}
cout << a[i] << ' ';
}
cout << "\nThe index of the largest number = " << largestIndex
<< "\nThe number of negative elements = " << counter << endl;
return 0;
}
P.S. В другом ответе решение неверное.