- •Арифметика
- •Зарплата
- •Больше - меньше
- •Два бандита
- •Конечные автоматы
- •Число е
- •Баскетбол
- •Клавиатура
- •Журавлики
- •Монетки
- •Неглухой телефон
- •Перепись
- •Разворот
- •Автобусная экскурсия
- •Оттепель
- •Сумма максимума и минимума
- •Школьная алгебра
- •Подмассив массива
- •Болты и гайки
- •Кругляши
- •Наименьшая система счисления
- •Четырехзначный палиндром
- •Время прибытия
- •Левая рекурсия
- •Железная дорога
- •Шахматный конь
- •Сбор черники
- •Цветочки
- •Очередь
- •Клавиатура - 2
- •День программиста
- •Модуль суммы
- •Внеземные гости
- •Треугольник - 3
- •Автобусы - 2
- •Золотой песок
- •Бинарные числа
- •Семестровые задачи Задание 1
- •Задание 2
- •Задание 3
Теория информационных процессов
и систем
Подготовил: Фадеев
Игорь Олегович Группа
09-661
Оглавление
АСМР 3
A+B 3
Игра 5
Арифметика 6
Зарплата 8
Больше - меньше 9
Два бандита 10
Конечные автоматы 10
Нули 12
Число Е 14
Баскетбол 15
Клавиатура 17
Дом - Школа - Дом 18
Журавлики 21
Монетки 22
Неглухой телефон 23
Перепись 24
Разворот 24
Эния 26
Автобусная экскурсия 27
Метро 28
Оттепель 28
Сумма максимума и минимума 30
Школьная алгебра 31
Подмассив массива 31
Налоги 32
Болты и гайки 33
Кругляши 34
Наименьшая система счисления 36
Четырехзначный палиндром 36
Время прибытия 38
Лифт 39
Левая рекурсия 41
Железная дорога 41
Шахматный конь 43
Сбор черники 44
Турист 45
Цветочки 47
Очередь 48
Клавиатура - 2 49
Торт 50
День программиста 52
Модуль суммы 53
Внеземные гости 53
Треугольник - 3 54
ACM World Finals 56
NEERC 57
Автобусы - 2 58
Детали 58
Золотой песок 60
Бинарные числа 61
Лентяй 63
Ремонт 64
АСМР
A+B
Требуется сложить два целых числа А и В.
Входные данные
В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.
#include <iostream>
main()
{
int a,b;
std::cin>>a>>b;
std::cout<<a+b;
}
Алгоритм решения:
Вводим два числа, выводим их сумму.
Игра
В свободное время одноклассники Вася и Петя любят играть в различные логические игры: морской бой, крестики-нолики, шахматы, шашки и многое другое. Ребята уже испробовали и поиграли во всевозможные классические игры подобного рода, включая компьютерные. Однажды им захотелось сыграть во что-нибудь новое, но ничего подходящего найти не удалось. Тогда Петя придумал следующую игру «Угадайка»: Играют двое участников. Первый загадывает любое трехзначное число, такое что первая и последняя цифры отличаются друг от друга более чем на единицу. Далее загадавший число игрок переворачивает загаданное число, меняя первую и последнюю цифры местами, таким образом получая еще одно число. Затем из максимального из полученных двух чисел вычитается минимальное. Задача второго игрока – угадать по первой цифре полученного в результате вычитания числа само это число. Например, если Вася загадал число 487, то перестановкой первой и последней цифры он получит число 784. После чего ему придется вычесть из 784 число 487, в результате чего получится число 297, которое и должен отгадать Петя по указанной первой цифре «2», взятой из этого числа. Петя успевает лучше Васи по математике, поэтому практически всегда выигрывает в играх такого типа. Но в данном случае Петя схитрил и специально придумал такую игру, в которой он не проиграет Васе в любом случае. Дело в том, что придуманная Петей игра имеет выигрышную стратегию, которая заключается в следующем: искомое число всегда является трехзначным и вторая его цифра всегда равна девяти, а для получения значения последней достаточно отнять от девяти первую, т.е. в рассмотренном выше случае последняя цифра равна 9-2=7. Помогите Пете еще упростить процесс отгадывания числа по заданной его первой цифре, написав соответствующую программу.
Входные данные. В единственной строке входного файла INPUT.TXT задана единственная цифра К, соответствующая первой цифре полученного Васей в результате вычитания наименьшего загаданного Васей значения из наибольшего.
Выходные данные. В выходной файл OUTPUT.TXT нужно вывести значение полученной Васей разности.
#include <iostream>
using namespace std;
main()
{
int a;
cin>>a;
cout<<a*99+99;
}
Алгоритм решения:
Вводим первую цифру числа - а, по алгоритму, описанному в условии задачи, находим необходимое число и выводим его.
Арифметика
Входные данные
Во входном файле INPUT.TXT записаны три натуральных числа A, B и C через пробел. Числа A и B <= 102, а C <= 106.
Выходные данные
В выходной файл нужно вывести YES в том случае, если A*B=C и вывести NO в противном случае.
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c;
d=a*b;
if (d==c) cout<<"YES";
else cout<<"NO";
return 0;
}
Алгоритм решения:
Вводится 3 числа, если произведение первых двух равняется третьему, то выводим YES, в противном случае NO
Зарплата
В отделе работают 3 сотрудника, которые получают заработную плату в рублях. Требуется определить: на сколько зарплата самого высокооплачиваемого из них отличается от самого низкооплачиваемого.
Входные данные
В единственной строке входного файла INPUT.TXT записаны размеры зарплат всех сотрудников через пробел. Каждая заработная плата – это натуральное число, не превышающее 105.
Выходные данные
В выходной файл OUTPUT.TXT необходимо вывести одно целое число — разницу между максимальной и минимальной зарплатой.
Алгоритм решения:
Вводим
три числа и сравниваем их. В max1
записываем наибольшее число, в min1
наименьшее. Выводим разницу между max1
и min1,
то есть между
наибольшим
и наименьшим числом.
Больше - меньше
Одна из основных операций с числами – их сравнение. Мы подозреваем, что вы в совершенстве владеете этой операцией и можете сравнивать любые числа, в том числе и целые. В данной задаче необходимо сравнить два целых числа
Входные данные
В двух строчках входного файла INPUT.TXT записаны числа A и B, не превосходящие по абсолютной величине 2*109.
Выходные данные
Запишите в выходной файл OUTPUT.TXT один символ “<”, если A < B, “>”, если A > B и “=”, если A=B.
#include <iostream>
using namespace std;
main ()
{
long long a,b;
cin>>a>>b;
if (a>b) cout<<'>'; else
if (a==b) cout<<'=';else
cout<<'<';
}
Алгоритм решения:
Вводим два числа, если первое больше второго, выводим «>», иначе «<». Если они равны выводим «=».
Два бандита
Бандиты Гарри и Ларри отдыхали на природе. Решив пострелять, они выставили на бревно несколько банок из-под кока-колы (не больше 10). Гарри начал простреливать банки по порядку, начиная с самой левой, Ларри — с самой правой. В какой-то момент получилось так, что они одновременно прострелили одну и ту же последнюю банку.
Гарри возмутился и сказал, что Ларри должен ему кучу денег за то, что тот лишил его удовольствия прострелить несколько банок. В ответ Ларри сказал, что Гарри должен ему еще больше денег по тем же причинам. Они стали спорить кто кому сколько должен, но никто из них не помнил сколько банок было в начале, а искать простреленные банки по всей округе было неохота. Каждый из них помнили только, сколько банок прострелил он сам.
Определите по этим данным, сколько банок не прострелил Гарри и сколько банок не прострелил Ларри.
#include <iostream>
using namespace std;
int main()
{ int a,b;
cin>>a>>b;
cout<<b-1<<' '<<a-1;
return 0;
}
Алгоритм решения:
Вводятся два числа : количество банок, простреленных Гарри и Ларри соответственно. Так как они прострелили одну и туже последнюю банку, то значит Гарри не прострелил столько банок, сколько прострелил Ларри, не учитывая их общую банку. Аналогично и с Ларри.
