===== PascalABC.NET =====
begin
var (n, k) := ReadInteger2('Введите N и k:');
var s := 0;
n := Abs(n); // в условии не сказано, что число всегда подожительное!
while n > 0 do
begin
var d := n mod 10;
if d > k then
s += d;
n := n div 10
end;
Print(s)
end.
Есть такжен более короткое решение:
begin
var (n, k) := ReadInteger2('Введите N и k:');
var a := Abs(n).ToString.ToCharArray.Select(c -> c.ToDigit).ToArray;
a.Where(p -> p > k).Sum.Println
end.
Ответ:
Объяснение:
1) Два мальчика переплывают на другой берег.
2) Один мальчик возвращается на свой берег.
3) Солдат переплывает на другой берег.
4) Второй мальчик возвращается на свой берег.
Повторять пункты с первого по четвертый, пока не кончатся солдаты.
Мне не нравится условие "наименьшую возможную длину", ибо по тому, что получилось у меня, наименьшей длиной может быть хоть отрезок длиной в 0. Возможно, в задании опечатка, ну или я накосячила.
#include <bits/stdc++.h>
using namespace std;
int main()
{ int a,b,mx;
cin >> a >> b;
if (a>b) cout << (a-b); else
cout << (b-a);
}