В прошлом году Вася пошел в школу и научился считать. В этом году он изучил таблицу умножения и теперь умеет перемножать любые числа от 1 до 10 без ошибок. Друг Петя рассказал ему про системы счисления, отличные от десятичной. В частности, про двоичную, восьмеричную и даже шестнадцатеричную. Теперь Вася без труда (но уже с помощью листка и ручки) может перемножать числа от 1 до 10 и в этих системах, используя перевод из нестандартной системы в десятичную и обратно из десятичной. Например, если Васе нужно перемножить числа 101 и 1001 в двоичной системе, то он сначала эти числа переводит в десятичное представление следующим образом:
(101)
2=1*2
2+0*2
1+1*2
0=4+0+1=5
(1001)
2=1*2
3+0*2
2+0*2
1+1*2
0=8+0+0+1=9
После чего перемножение чисел 5 и 9 Вася с легкостью производит в десятичной системе счисления в уме и получает число 45. Далее производится перевод из десятичной системы счисления в двоичную. Для этого Вася делит число 45 на 2 (порядок системы счисления), запоминая остатки от деления, до тех пор пока в результате не останется число 0:
Ответ составляется из полученных остатков от деления путем их записи в обратном порядке. Таким образом Вася получает результат: (101)
2 * (1001)
2 = (101101)
2. Но теперь Вася изучает таблицу умножения чисел от 1 до 100 в десятичной системе счисления, а поскольку запомнить такую таблицу очень сложно, то Васе придется очень долго ее зубрить. Составьте для Васи программу, которая поможет ему проверять свои знания.
№
| INPUT.TXT
| OUTPUT
|
1
| 8 54 432
| YES
|
2
| 16 19 777
| NO
|
Входные данные Во входном файле записаны три натуральных числа A, B и C через пробел. Числа A и B <= 10
2, а C <= 10
6. Выходные данные
Эта задача относится к роду тех задач, формулировку которых читать дольше, чем решать саму задачу. В этой задаче нужно просто проверить: равно ли третье число произведению первых двух.
В выходной файл нужно вывести YES в том случае, если A*B=C и вывести NO в противном случае.
# include
using namespace std;
int main(){
int a,b,c,min,max;
cin>>a>>b>>c;
if (a*b==c) cout<<"YES";
else cout<<"NO";
return 0; }
Задача 20 (№ 61) Баскетбол (Сложность: 5%)
Известны результаты каждой из 4х четвертей баскетбольной встречи. Нужно определить победителя матча.
№
| INPUT.TXT
| OUTPUT
|
1
| 26 17 13 15 19 11 14 16
| 1
|
2
| 14 15 17 18 20 20 15 17
| 2
|
3
| 15 16 18 17 10 12 14 12
| DRAW
|
Входные данные. Входной файл INPUT.TXT содержит 4 строки, в каждой строке находится два целых числа a и b – итоговый счет в соответствующей четверти. а – количество набранных очков за четверть первой командой, b – количество очков, набранных за четверть второй командой. (0 ≤ a,b ≤ 100). Выходные данные. В выходной файл OUTPUT.TXT выведите номер выигравшей команды, в случае ничьей следует вывести «DRAW».
#include
using namespace std;
int main() {
int a1, b1, a2, b2, a3, b3, a4, b4, z, x;
cin >> a1 >> b1 >> a2 >> b2>>a3>>b3>>a4>>b4;
z =a1+a2+a3+a4;
x =b1+b2+b3+b4;
if (z == x) cout<<"DRAW";
if (z > x) cout<<"1";
if (z < x) cout<<"2";
return 0; }
Маша и Миша собирали землянику. Маше удалось сорвать X ягод, а Мише – Y ягод. Поскольку ягода была очень вкусной, то ребята могли какую то часть ягод съесть. По нашим подсчетам вместе они съели Z ягод. Требуется определить: сколько ягод ребята собрали в результате, при этом следует проверить, не ошиблись ли мы в расчетах, подсчитывая количество съеденных ягод (их не должно было получиться больше, чем сорванных ягод).
Входные данные. Входной файл INPUT.TXT содержит три натуральных числа X, Y и Z, не превышающих 1000. Все числа расположены в первой строке файла и разделены пробелом.
№
| INPUT.TXT
| OUTPUT.TXT
|
1
| 3 2 1
| 4
|
2
| 12 13 5
| 20
|
3
| 2 5 9
| Impossible
|
Выходные данные. В выходной файл выведите количество собранных ягод, если наши подсчеты оказались правдоподобными, либо слово «Impossible» в противном случае.
#include
using namespace std;
int main() {
int x, y, z;
cin >> x >> y >> z;
if ((x + y) - z >= 0) cout << (x + y) - z; else cout << "Impossible";
return 0; }
Задача 22 (№ 539) Торт (Сложность: 6%)
№
| INPUT
| OUTPUT
|
1
| 2
| 1
|
2
| 3
| 3
|
На свой день рождения Петя купил торт, который имел идеально круглую форму. Петя не знал, сколько гостей придет на его день рождения, поэтому вынужден был разработать алгоритм, согласно которому он сможет быстро разрезать торт на N равных частей. Следует учесть, что разрезы торта можно производить как по радиусу, так и по диаметру.
Помогите Пете решить эту задачу, определив наименьшее число разрезов торта по заданному числу гостей.
Входные данные
Входной файл содержит натуральное число N – число гостей, включая самого виновника торжества (N <= 1000).
Выходные данные. В выходной файл OUTPUT.TXT выведите минимально возможное число разрезов торта.
#include
#include
using namespace std;
int main(){
int n;
cin>>n;
if(n==1) cout<<0;
else{if (n%2==0){cout< else {cout< return 0; }
|
Если гостей нет (n=1) – торт не режут.
Если гостей четное число, то разрезов n/2.
Если гостей нечетное число, то разрезов n
|
Задача 23 (№ 754) Три толстяка (Сложность: 7%)
Три толстяка решили поспорить: кто из них самый тяжелый. После взвешивания оказалось, что их масса соответственно M1, M2 и M3 килограмм. Считается, что масса толстяка должна быть не менее 94 и не более 727 килограмм. Помогите определить массу самого тяжелого из них, либо выяснить, что была допущена ошибка при взвешивании.
Входные данные. Входной файл содержит три целых числа M1, M2 и M3. Все числа целые и не превосходят 10 000 по абсолютной величине. Выходные данные. В выходной файл выведите массу самого тяжелого толстяка в случае корректного взвешивания, либо слово «Error» в противном случае.
№
| INPUT.TXT
| OUTPUT.TXT
|
1
| 98 106 214
| 214
|
2
| 100 100 100
| 100
|
3
| 93 500 1000
| Error
|
#include
using namespace std;
int main () {
int m1, m2, m3, max;
cin>> m1 >> m2>>m3;
if (m1<94 or m1>727) {cout << "Error"; return 0;}
if (m2<94 or m2>727) {cout << "Error"; return 0;}
if (m3<94 or m3>727) {cout << "Error"; return 0;}
if (m1>m2) max=m1; else max=m2;
if (m3>max) max=m3;
cout << max; return 0; }
Задача 24 (№ 907) Мышка (Сложность: 9%)
Однажды компьютерная мышка подумала, что стоит взять про запас еще один коврик. Чтобы никто не заметил запасного коврика, мышка решила его спрятать под свой прямоугольный коврик. Пробравшись ночью на склад, мышка обнаружила там только круглые коврики. Удастся ли мышке спрятать круглый коврик под прямоугольным ковриком?
Входные данные. Входной файл INPUT.TXT содержит три натуральных числа: W, H и R, где W и H - ширина и высота прямоугольного коврика, а R – радиус запасного коврика. Все числа не превосходят значения 109.
Выходные данные. В выходной файл OUTPUT.TXT выведите «YES», если новый коврик можно спрятать под старым, и слово «NO», если этого сделать нельзя.
№
| INPUT.TXT
| OUTPUT.TXT
|
1
| 4 7 2
| YES
|
2
| 4 7 3
| NO
|
#include
using namespace std;
int main() {
float w, h, r;
cin >> w >> h >> r;
if (r * 2 <= w and r * 2 <= h) cout << "YES";
else cout << "NO";
return 0; }
Задача 25 (№ 970) От перестановки что-то меняется ...(Сл.: 9%)
Всем известно, что «от перестановки слагаемых сумма не изменяется». Однако, случается и так, что перестановка двух чисел приводит к более интересным последствиям. Пусть, например, заданы три числа: a1, a2, a3. Рассмотрим равенство a1+ a2= a3. Оно может быть неверным (например, если a1= 1, a2= 4, a3= 3), однако может стать верным, если поменять некоторые числа местами (например, если поменять местами a2 и a3, оно обратится в равенство 1 + 3 = 4).
Ваша задача – по заданным трем числам определить: можно ли их переставить так, чтобы сумма первых двух равнялась третьему.
Входные данные. Входной файл INPUT.TXT содержит три целых числа: a1, a2, a3 (−108 ≤ a1, a2, a3 ≤ 108). Выходные данные. В выходной файл OUTPUT.TXT выведите слово «YES», если заданные числа можно переставить так, чтобы сумма первых двух равнялась третьему. В противном случае выведите в выходной файл слово «NO».
№
| INPUT.TXT
| OUTPUT.TXT
|
1
| 3 5 2
| YES
|
2
| 2 2 5
| NO
|
3
| 2 2 4
| YES
|
#include
using namespace std;
int main(){
int a1, a2, a3;
cin>>a1>>a2>>a3;
if (a1+a2==a3 || a1+a3==a2 || a2+a3==a1) cout<<"YES"; else cout<<"NO";
return 0; }
Задача 26 (№ 597) Внеземные гости (Сложность: 10%)
Недавно на поле фермера Джона были обнаружены следы приземления летающих тарелок. Об этом даже писала газета Mew Yorc Courier.
Поле фермера Джона имеет форму круга радиусом r1. По сообщениям журналистов были обнаружены два следа от летающих тарелок, имевшие форму кругов. Один из них имел радиус r2, второй - радиус r3. Также сообщается, что они находились внутри поля фермера Джона и не пересекались (при этом, они, возможно, касались друг друга и/или границы поля). Поскольку журналисты часто склонны преувеличивать масштабы событий, необходимо написать программу, которая будет проверять, могли ли иметь место события, описанные в газете.
Входные данные. Входной файл INPUT.TXT содержит три целых положительных числа - r1, r2, r3 (1 ≤ r1, r2, r3 ≤ 109). 94>94>94>