Поиск характеристик
Максимум
Условие
Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 3. Гарантируется, что хотя бы одно число кратно 3. Программа должна вывести одно число — максимальное кратное 3.
mx = -1 → если число подходит и a > mx → обновляем mx = a.
Python · for
Python · while
Python · while True
C++
КуМир
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
n = int(input())
mx = -1
for i in range(n):
a = int(input())
if a % 3 == 0:
if a > mx:
mx = a
print(mx)
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
a = int(input())
mx = -1
while a != 0:
if a % 3 == 0:
if a > mx:
mx = a
a = int(input())
print(mx)
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
mx = -1
while True:
a = int(input())
if a == 0:
break
if a % 3 == 0:
if a > mx:
mx = a
print(mx)
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
#include <iostream>
using namespace std;
int main() {
int n, a, mx = -1;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
if (a % 3 == 0 && a > mx) mx = a;
}
cout << mx << endl;
}
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
алг
нач
цел n, a, mx, i
ввод n
mx := -1
нц для i от 1 до n
ввод a
если mod(a, 3) = 0 и a > mx то
mx := a
все
кц
вывод mx
кон
Минимум
Условие
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, кратное 3. Формат ввода — аналогичный. Программа должна вывести одно число — минимальное кратное 3.
mn = 999999 → если подходит и a < mn → mn = a.
Среднее арифметическое
Условие
Напишите программу, которая в последовательности натуральных чисел определяет среднее арифметическое чётных чисел. Если чётных чисел нет, программа должна напечатать «NO». Иначе — среднее арифметическое с точностью до 2 знаков после запятой.
Нужны две переменные: s = 0 и cnt = 0. В конце: s / cnt.
Python · for
Python · while
Python · while True
C++
КуМир
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
n = int(input())
s = 0
cnt = 0
for i in range(n):
a = int(input())
if a % 2 == 0:
s += a
cnt += 1
if cnt > 0:
print("{{:.2f}}".format(s / cnt))
else:
print("NO")
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
a = int(input())
s = 0
cnt = 0
while a != 0:
if a % 2 == 0:
s += a
cnt += 1
a = int(input())
if cnt > 0:
print("{{:.2f}}".format(s / cnt))
else:
print("NO")
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
s = 0
cnt = 0
while True:
a = int(input())
if a == 0:
break
if a % 2 == 0:
s += a
cnt += 1
if cnt > 0:
print("{{:.2f}}".format(s / cnt))
else:
print("NO")
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n, a, s = 0, cnt = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
if (a % 2 == 0) { s += a; cnt++; }
}
if (cnt > 0)
cout << fixed << setprecision(2)
<< (double)s / cnt << endl;
else cout << "NO" << endl;
}
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
алг
нач
цел n, a, s, cnt, i
ввод n
s := 0; cnt := 0
нц для i от 1 до n
ввод a
если mod(a, 2) = 0 то
s := s + a
cnt := cnt + 1
все
кц
если cnt > 0 то
вывод вещ(s) / вещ(cnt)
иначе
вывод "NO"
все
кон
Проверка существования (YES / NO)
Условие
Напишите программу, которая определяет, есть ли в последовательности натуральных чисел хотя бы одно нечётное число, большее 100. Программа должна напечатать «YES», если такое число есть, или «NO» в противном случае.
Флаг found = False. Если хоть одно число подходит — found = True.
Python · for
Python · while
Python · while True
C++
КуМир
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
n = int(input())
found = False
for i in range(n):
a = int(input())
if a % 2 == 1 and a > 100:
found = True
print("YES" if found else "NO")
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
a = int(input())
found = False
while a != 0:
if a % 2 == 1 and a > 100:
found = True
a = int(input())
print("YES" if found else "NO")
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
found = False
while True:
a = int(input())
if a == 0:
break
if a % 2 == 1 and a > 100:
found = True
print("YES" if found else "NO")
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
#include <iostream>
using namespace std;
int main() {
int n, a;
bool found = false;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
if (a % 2 == 1 && a > 100) found = true;
}
cout << (found ? "YES" : "NO") << endl;
}
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
алг
нач
цел n, a, f, i
ввод n
f := 0
нц для i от 1 до n
ввод a
если mod(a, 2) = 1 и a > 100 то
f := 1
все
кц
если f = 1 то
вывод "YES"
иначе
вывод "NO"
все
кон
Среднее требует деления, а делить на 0 нельзя. Всегда проверяй if cnt > 0 перед делением!