var
summ, c:integer;
begin
write('Введите число '); readln(c);
summ := c mod 10 + (c div 10) mod 10 + c div 100;
writeln('Сумма цифр числа ', c , ' равна ', summ);
end.
Посчитаем сколько всего узлов на этом листке:
у нас он N клеточек в высоту, значит всего в каждом столбике <span>N+1 узел;
у нас он М клеточек в ширину, значит всего в каждой строчке М+1 узел.
Значит всего узлов (</span><span>N+1)*(М+1).
Чтобы определьть прямоугольник, надо определить два узла в которых будут противоположные углы:
первый узел мы можем выбрать (</span><span>N+1)*(М+1) способами;
второй узел мы можем выбрать </span><span>N*М способами (мы не можем выбрать тот столбик и тот ряд, в котором у нас стоит первый узел).
Тоэсть всего способов выбрать (</span>N+1)*(М+1)*<span>N*М, но это не так.
Рассмотрим весь лист как выбраный прямоугольник.
Пусть мы его выбрали так:
(0; 0), (</span><span>N+1; М+1).
Этот же прямоугольник мы считали, когда плучали с такими координатами:
1) (</span><span>N+1; М+1), (0; 0).
2) (</span><span>N+1; 0), (0; М+1).
3) (0; М+1), (</span><span>N+1; 0).
И так с каждым прямоугольником, тоэсть каждый прямоугольник мы считаем 4 раза, тоэсть конечная формула такова:
</span>(N+1)*(М+1)*N*М / 4.
Осталось составить прогрмму, которая будет это вичислять.
С++:
#include <iostream>using namespace std;int main()
{
int N, M, k;
cin >> N >> M;
k = (N+1)*(M+1)*N*M / 4;
cout << k << endl;
return 0;
}
Pascal:
program Znanija;
var N, M, k:integer;
begin
read(N);
read(M);
k:=((N+1)*(M+1)*N*M) div 4;
writeln();
writeln(k);
end.
<em>// PascalABC.NET 3.3, сборка 1634 от 14.02.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function NOD(a,b:integer):integer;
begin
while b>0 do (a,b):=(b,a mod b);
Result:=a
end;
procedure FracAdd(n1,d1,n2,d2:integer; var n,d:integer);
// сложение дробей n1/d1 + n2/d2 = n/d
begin
(n,d):=(n1*d2+n2*d1,d1*d2);
var k:=NOD(n,d);
if k<>1 then (n,d):=(n div k,d div k)
end;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2й дроби:');
var m,n:integer;
FracAdd(a,b,c,d,m,n);
if n=1 then Writeln('Сумма=',m)
else Writeln('Сумма=',m,'/',n)
end.
<u>Пример</u>
Введите числитель и знаменатель 1й дроби: 6 15
Введите числитель и знаменатель 2й дроби: 12 300
Сумма=11/25
<u>Замечание:</u> вводить только натуральные числа!