Много !
икт олимпиада
миша - обычный парень. он любит , смотрит сериалы про пони, верит в чудеса, и в то, что на лотереях можно разбогатеть.
каждую неделю миша покупает у аглаи петровны газету с заветной лотереей и пять билетиков с четырёхзначным числом на каждом из них, в надежде выиграть сегодня большой куш.
в газете "авантюрист", которую покупает миша, каждую неделю проводится лотерейный розыгрыш. в газете публикуется какое-то число (не обязательно четырёхзначное, но не более), а в продажу поступают лотерейные билетики. выигрывает тот лотерейный билетик, который будет удовлетворять следующим условиям:
если друг за другом по невозрастанию записать сумму первых двух и последних двух чисел лотерейного билетика, то получается опубликованное в газете на этой неделе число.
число на билетике является максимальынм среди всех подобных чисел на лотерейных билетиках.
миша так давно увлекается этим, что наладил все контакты и знает, какие билеты есть во всех лотерейных киосках в округе. но миша до сих пор не умеет быстро высчитывать абсолютное выигрышное значение. поэтому попросил вас создать алгоритм, который выдавал бы номер счастливого билетика по числу в газете.
формат ввода
в единственной строке вводится число 0 ≤ h < 1 - число, записанное в газете на этой неделе.
формат вывода
выведите единственное число - номер выигрышного билетика этой недели. если такого не существует- выведите 0.
пример
ввод вывод
1412
9593
#include <iostream>
using namespace std;
int main()
{
int number, max_1, max_2;
cin >> number;
max_1 = number;
while (number != 0)
{
cin >> number;
if (number > max_1)
{
max_2 = max_1;
max_1 = number;
}
}
cout << max_1 << " " << max_2;
}
Объяснение:
Последовательность заканчивается нулём
#include <iostream> // Библиотека ввода - вывода
using namespace std; // Пространство имён
int main()
{
int number, max_1, max_2; // Создание целочисленных переменных:
number - вводимые числа;max_1 - первый максимум;max_2 - второй максимум.cin >> number; // Ввод числа с клавиатуры
max_1 = number; // Возьмём, что первый максимум = первому числу
while (number != 0) // Пока значение переменной number ≠ 0
{
cin >> number; // Ввод числа с клавиатуры
if (number > max_1) // Если значение переменной number > значения переменной max_1
{
max_2 = max_1; // Второй максимум = первый максимум
max_1 = number; // Первый максимум = переменной number
}
}
cout << max_1 << " " << max_2; // Вывод ответа через пробел
}
Типовая задача на разбор случаев. Разбирать случаи будем не простым последовательным перечислением, а более сложной конструкцией из вложенных условных операторов.
Решение задачи.
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2,b2,c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
BEGIN
ReadLn( a1, b1, c1);
ReadLn( a2, b2, c2);
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
then WriteLn( 'прямые совпадают.' )
else
if a1*b2 = a2*b1 {условие параллельности}
then WriteLn('прямые параллельны.')
else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);
y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);
WriteLn('координаты точки пересечения :',
' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);
end;
END.