В каждой итерации цикла к переменной S прибавляется 18, а к n - 6. Цикл будет остановлен, когда S окажется больше 365, следовательно до этого момента он сработает 365/18 = 21 раз.
Переменная n за 21 итерацию увеличится на 21*6 = 126.
begin if ReadInteger('Введите число:').ToString.GroupBy(t->t). Select(t->(t.Key,t.Count)).Any(t->t[1]>1) then Writeln('Число содержит по крайней мере две одинаковые цифры') else Writeln('Введенное число не содержит одинаковых цифр') end.
Примеры Введите число: 12345670 Введенное число не содержит одинаковых цифр
Введите число: 1320624 Число содержит по крайней мере две одинаковые цифры
126
Объяснение:
В каждой итерации цикла к переменной S прибавляется 18, а к n - 6. Цикл будет остановлен, когда S окажется больше 365, следовательно до этого момента он сработает 365/18 = 21 раз.
Переменная n за 21 итерацию увеличится на 21*6 = 126.
ΔS = 0 -> 18 -> 36 -> 54 -> 72 -> 90 -> 108 -> 126 -> 144 -> 162 -> 180 -> 198 -> 216 -> 234 -> 252 -> 270 -> 288 -> 306 -> 324 -> 342 -> 360 -> 378
ΔN = 0 -> 6 -> 12 -> 18 -> 24 -> 30 -> 36 -> 42 -> 48 -> 54 -> 60 -> 66 -> 72 -> 78 -> 84 -> 90 -> 96 -> 102 -> 108 -> 114 -> 120 -> 126
Внимание! Если программа не работает, обновите версию!
№1
function IsGood(n:integer):boolean;
begin
n:=Abs(n);
var s:=0;
while n>0 do begin
s+=n mod 10;
n:=n div 10
end;
Result:=s=10
end;
begin
var k:=ReadSeqIntegerWhile(t->t<>0).Where(t->IsGood(t)).Count;
Writeln(k,' чисел с суммой цифр, равной 10')
end.
Пример
-5234 20043 52340 10531 -64 31502 0
2 чисел с суммой цифр, равной 10
№2
begin
var n:=ReadInteger('Введите число:');
if n<=1 then Writeln(n,'!=',1)
else Writeln(n,'!=',1.To(n).Aggregate(BigInteger(1),(i,j)->i*j))
end.
Примеры
Введите число: 5
5!=120
Введите число: 20
20!=2432902008176640000
Введите число: 100
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
№3
begin
if ReadInteger('Введите число:').ToString.GroupBy(t->t).
Select(t->(t.Key,t.Count)).Any(t->t[1]>1)
then Writeln('Число содержит по крайней мере две одинаковые цифры')
else Writeln('Введенное число не содержит одинаковых цифр')
end.
Примеры
Введите число: 12345670
Введенное число не содержит одинаковых цифр
Введите число: 1320624
Число содержит по крайней мере две одинаковые цифры