Ответ:
есть более другой вариант - через преобразование типов (если проходили такое)
Объяснение:
program FourDigit;
var
n,k, sumN : integer;
begin
SumN :=0;
Write ('Input n, k : ');
ReadLn (n,k);
if n div 1000 > k then sumN := sumN + n div 1000;
if n mod 1000 div 100 > k then sumN := sumN + n mod 1000 div 100;
if n mod 1000 mod 100 div 10 > k then sumN := sumN + n mod 1000 mod 100 div 10;
if n mod 1000 mod 100 mod 10 > k then sumN := sumN + n mod 1000 mod 100 mod 10;;
WriteLn ('Sum >k is ',SumN);
end.
===== PascalABC.NET =====
var (n, k) := ReadInteger2('Введите N и k:');
var s := 0;
n := Abs(n); // в условии не сказано, что число всегда подожительное!
while n > 0 do
var d := n mod 10;
if d > k then
s += d;
n := n div 10
end;
Print(s)
Есть такжен более короткое решение:
var a := Abs(n).ToString.ToCharArray.Select(c -> c.ToDigit).ToArray;
a.Where(p -> p > k).Sum.Println
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Ответ:
есть более другой вариант - через преобразование типов (если проходили такое)
Объяснение:
program FourDigit;
var
n,k, sumN : integer;
begin
SumN :=0;
Write ('Input n, k : ');
ReadLn (n,k);
if n div 1000 > k then sumN := sumN + n div 1000;
if n mod 1000 div 100 > k then sumN := sumN + n mod 1000 div 100;
if n mod 1000 mod 100 div 10 > k then sumN := sumN + n mod 1000 mod 100 div 10;
if n mod 1000 mod 100 mod 10 > k then sumN := sumN + n mod 1000 mod 100 mod 10;;
WriteLn ('Sum >k is ',SumN);
end.
===== 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.