1.Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 4 и оканчивающихся на 2. Программа получает на вход натуральные числа, количество введенных чисел не известно, последовательность чисел заканчивается числом 0. Количество чисел не превышает 1000. Введенные числа не превышают 30 000.
Программа должна вывести одно число: количество чисел, кратных 4 и оканчивающихся на 2.
2.Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел не известно, последовательность чисел заканчивается числом 0.
Количество чисел не превышает 100. Введенные числа не превышают 300.
Программа должна вывести одно число: количество двухзначных чисел, кратных 8, или выводит «NO», если таких чисел нет. Значение должно выводиться с точностью до десятых.
3.Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двухзначных чисел или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел не известно, последовательность чисел заканчивается числом 0.
Количество чисел не превышает 100. Введенные числа не превышают 300.
Программа должна вывести среднее арифметическое двухзначных чисел или выводит «NO», если таких чисел нет. Значение должно выводиться с точностью до десятых.
int sum = 0; // периметр
int question;
if(count==3)
{
cout << "Предположение: Это квадрат? 1 если да и 0 если нет: ";
cin >> question;
if(question!=1)
{
cout << "Вводите стороны по очереди: " << endl;
int a[count]; // стороны в массиве
for(int i = 0; i<=count; i++)
{
cin >> a[i];
sum += a[i];
}
}
else
{
cout << "Введите одну сторону квадрата: ";
cin >> kvadrat;
sum=4*kvadrat;
}
}
else
{
cout << "Вводите стороны по очереди: " << endl;
int a[count]; // стороны в массиве
for(int i = 0; i<=count; i++)
{
cin >> a[i];
sum += a[i];
}
}
cout << "Итого, P = " << sum;
}
Объяснение:
Доп. функция: если 4 стороны, то спрашивает квадрат ли это
Создадим список a. В a[k] будем хранить количество различных программ, по которым Калькулятор может получить из 2 число k.
При небольших k зададим значения вручную: a[0] = a[1] = 0; a[2] = 1 (для k = 2 удобно считать, что есть одна программа - пустая).
Для k > 2 можно вычислять a[k] так: a[k] = a[k - 1] + a[k/2] * {k - полный квадрат} + a[sqrt(k)] * {k - полный квадрат}. Здесь {P} - 1, если P верно, и 0, если ложно.
По описанию программа составляется просто (версия питона 3.8, в ней появилась функция isqrt, если у вас python3, но версия меньше 3.8, можете округлить корень для ближайшего целого):
from math import isqrt
a = [0] * 39
a[2] = 1
for k in range(3, 39):
a[k] = a[k - 1]
if k % 2 == 0:
a[k] += a[k // 2]
t = isqrt(k)
if t ** 2 == k:
a[k] += a[t]
print(f"{k:3} {a[k]:5}")
Программа выводит все промежуточные ответы и a[38]