program balet;
uses
crt;
var
k, n, pc: integer;
var
pd: real;
begin
readln(n);
readln(k);
pd := (n - 3 * k) / 2;
pc := trunc(pd);
if (pd > pc) then
pc := pc + 1 ;
writeln(pc);
readln;
end.
Пояснения:
pc - целое число принятых
pd - дробное число принятых
Так как может возникнуть ситуация, что ровно треть мальчиков от всех учеников сделать не получиться, то используем приём со сравнением числа с дробной частью и без дробной части в числе. Если дробная часть есть, то прибавляем еще одного принятого, чтобы было чуть больше трети от всех.
Пример:
n=59
k=10
pd=14,5
pc=trunc(14,5)=14
{функция trunc полностью отбрасывает дробную часть (не округляет!)}
pd>pc?
Да!
Значит
pc=14+1=15
Считаем.
Если бы мы не добавили к pc единицу, то получилось бы:
А это немного не треть...
А так как мы добавили единицу, то получилось:
То что нам надо!
C++
Объяснение:
#include <iostream>
using namespace std;
#include <string>
//На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём.Найти среднее арифметическое всех двузначных чисел которые делятся на 7. С++
int main()
{
int number;
int count = 0;
float summ = 0;
int otvet;
cin >> number;
while (number != 0) {
cin >> number;
if ((number >= 10 && number <= 99) && (number % 7 == 0)) {
summ += number;
count++;
}
if (number == 0) {
otvet = summ / count;
cout << "Otvet: " << otvet << endl;
break;
}
}
}
3
Примечание:
В программировании отсчёт начинается с 0.