- •Арифметика
- •Зарплата
- •Больше - меньше
- •Два бандита
- •Конечные автоматы
- •Число е
- •Баскетбол
- •Клавиатура
- •Монетки
- •Неглухой телефон
- •Перепись
- •Журавлики
- •Разворот
- •Автобусная экскурсия
- •Оттепель
- •Сумма максимума и минимума
- •Школьная алгебра
- •Подмассив массива
- •Болты и гайки
- •Кругляши
- •Наименьшая система счисления
- •Четырехзначный палиндром
- •Время прибытия
- •Левая рекурсия
- •Железная дорога
- •Шахматный конь
- •Сбор черники
- •Цветочки
- •Очередь
- •Клавиатура - 2
- •День программиста
- •Модуль суммы
- •Внеземные гости
- •Треугольник - 3
- •Автобусы - 2
- •Золотой песок
- •Бинарные числа
- •Семестровые задачи Задание 1
- •Задание 2
- •Задание 3
Оттепель
Уставшие от необычно теплой зимы, жители решили узнать, действительно ли это самая длинная оттепель за всю историю наблюдений за погодой. Они обратились к синоптикам, а те, в свою очередь, занялись исследованиями статистики за прошлые годы. Их интересует, сколько дней длилась самая длинная оттепель.
Оттепелью они называют период, в который среднесуточная температура ежедневно превышала 0 градусов Цельсия. Напишите программу, помогающую синоптикам в работе.
#include <iostream>
using namespace std;
int main()
{
int n,i,a,k=0,max,x=0;
cin>>n;
max=0;
for(i=1;i<=n;i++)
{cin>>a;
if(a>0) k++;
else k=0;
if(k>max) max=k;
}
cout<<max;
return 0;
}
Алгоритм решения:
Вводим количество элементов. В цикле от 1 до n включительно вводим значения температуры. Находим максимальное количество дней с положительной температурой: когда находится положительное число, увеличиваем счетчик k, и сравниваем его с max. И когда заканчивается цикл выводим max.
Сумма максимума и минимума
Задана последовательность целых чисел. Числа нумеруются по порядку следования, начиная с единицы.
Требуется написать программу, которая найдет сумму максимума из чисел с четными номерами и минимума из чисел с нечетными номерами – max{a2, a4, …}+min{a1, a3, …}.
#include <iostream>
using namespace std;
int main() {
int mx = -10000, mn = 10000, a, k = 0;
while (cin >> a) {
k += 1;
if (k % 2 == 0) {
if (mx < a) mx = a;
} else { if (mn >a) mn = a; }}
cout << mn + mx;
return 0;
}
Алгоритм решения:
Пока происходит ввод чисел, увеличивается счетчик, который отвечает за номер элемента, если номер четный, то находим mx, если номер нечетный mn. Выводим сумму mn и mx.
Школьная алгебра
Трёхчлен a + bx + сy от двух переменных x и y однозначно определяется коэффициентами a, b и c. Написать программу, которая по заданным a, b и c выводит соответствующий трёхчлен, записанный с использованием алгебраических соглашений:
коэффициент при члене, содержащем переменную, опускается, если его модуль равен единице;
член, коэффициент при котором равен нулю, опускается (кроме случая, когда все коэффициенты равны нулю, тогда трехчлен состоит из одной цифры 0);
знак "+" опускается, если он предшествует отрицательному коэффициенту;
знак "+" опускается, если он стоит в начале выражения (так называемый унарный плюс);
знак умножения между коэффициентом и переменной опускается.
Алгоритм решения:
Вводим три коэффициента. Если они все равны 0, выводим 0. Если а != 0 выводим а. Дальше если b != 0, следуем условиям, выводим b, аналогичные операции проводим с коэффициентом c.
Подмассив массива
Пусть задан массив целых чисел а1, а2, ..., аn. Назовем его подмассивом f(i,j) массив, составленный из чисел массива аi, ai+1,..., aj-1, aj. Напишите программу, которая будет выводить подмассивы массива a.
#include <iostream>
using namespace std;
int main()
{
long long n,m,i,x,y,j;
int a[n+1];
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
cin>>m;
for(i=1;i<=m;i++)
{ cin>>x>>y;
for(j=x;j<=y;j++)
cout<<a[j]<<" ";
cout<<endl;
}
}
Алгоритм решения:
Вводим количество элементов в массиве. В цикле от 1 до n включительно, заполняем массив. Дальше вводим количество пар, в цикле от 1 до m, вводим сами пары x и y. В цикле от x до y выводим элементы.
Налоги
В некотором государстве действует N фирм, конкурирующих между собой. У каждой фирмы есть некоторая прибыль в год, равная V[i] американских рублей. У царя есть любимые фирмы, а есть нелюбимые. Соответственно, налог для всех фирм разный и назначается царем в индивидуальном порядке. Налог на i-ую фирму равен p[i] процентов.
Собиратели статистики решили посчитать, с какой фирмы в государственную казну идет наибольший доход (в казну идут все налоги). К сожалению, они не учили в детстве ни математику, ни информатику (так что учитесь, дети!), и их задача резко осложняется.
Помогите им в этой нелегкой задаче.
#include <iostream>
using namespace std;
int main()
{
int n,i,max=-1,k=0;
cin>>n;
int a[n],p[n],o[n];
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=n;i++)
cin>>p[i];
for(i=1;i<=n;i++)
o[i]=a[i]*p[i];
for(i=1;i<=n;i++)
if(o[i]>max) {max=o[i]; k=i;}
cout<<k;
return 0;
}
В цикле от 1 до n включительно заполняем массив а[i] - прибыль i-ой фирмы, массив p[i] - процент на i-ую фирму. Массив o[i] заполняем налогом возложенным на i-ую фирму. В цикле от 1 до n включительно находим номер фирмы, имеющей максимальный налог. Выводим номер.
