Программа:
Pascal:
function summ(n: integer): integer;
begin
n := abs(n);
while n > 0 do begin
result := result + n mod 10;
n := n div 10;
end;
end;
var
n1, n2, n3: integer;
begin
write('n1 = '); readln(n1);
write('n2 = '); readln(n2);
write('n3 = '); readln(n3);
if (summ(n1) > summ(n2)) and (summ(n1) > summ(n3)) then
writeln('Первое число')
else
if (summ(n2) > summ(n1)) and (summ(n2) > summ(n3)) then
write('Второе число')
else
write('Третье число');
end.
Резюмирую:
1) Использование того, чего не понимаешь (6-8 строки)
2) Решение за O(N^2) при ограничении N < 10^5, что очень плохо
3) Нет проверки на выход за границы выделенной памяти (20, 22 строки)
4) Абсолютно неверная идея алгоритма: сравнивать только соседние элементы, да и еще и непонятно зачем делать во вложенном цикле + неверное написание тела цикла фор: полное непонимание того, как он работает и что делает
5) Нет проверки на то, использовали мы конкретное число уже или нет
Итог: полностью неверное решение, которое надо не менять, а стирать и переделывать.
Возможное решение на сотку:
#include <iostream>
#include <vector>
#include <map>
using namespace std;
signed main() {
map<int, int> cnt;
int n;
cin >> n;
vector<int> a(n), res;
for(auto &i: a){
cin >> i;
cnt[i]++;
}
for(auto &i: a){
if(cnt[i] > 1) res.push_back(i);
cnt[i] = 0;
}
if(res.empty()) cout << 0;
else for(auto &i: res) cout << i << " ";
}
P.S. Если что непонятно, то спрашивай - распишу поминутно кто где того самого
То есть формула =СУММ(В2:В4) равнозначна =В2+В3+В4.
Теперь вспомним из математики, что такое среднее значение (=СРЗНАЧ).
В очень упрощенном виде, это сумма чисел, разделенное на количество этих чисел.
То есть, формулу =СРЗНАЧ(B2:B5) можно заменить на =(В2+В3+В4+В5)/4.
Подставим известные нам решения :
=((В2+В3+В4)+14)/4
=(СУММ(В2:В4)+14)/4
=(6+14)/4
20/4
5.
Таким образом, значение формулы =СРЗНАЧ(В2:В5) будет являться число 5