• Напишите программу для вычисления последней ненулевой цифры факториала заданного числа N(0 ≤ N ≤ 10³⁰⁰). Циклы использовать запрещено.

Ответы 1

  • Все приведённые ниже коды написаны и отлажены в среде PascalABC.NET 3.2. сборка 1439(10.05.2017). Сначала программа, показывающая период=))Var   N:uint64;   B:BigInteger:=1;BeginWrite('N = ');ReadLn(N);For var i:= 1 to N do    Begin    if (i mod 10 <> 5)and(i mod 10 <> 0) then B:=B*i       else if i mod 10 = 5 then B:=B div 2;    Write(B mod 10);    if i mod 40 = 0 then WriteLn;    End;End.N = 100012642242888682662644484688682224284484666264224288868266264448468868222428448466626422428886826626444846886822242844846662642242888682662644484688682224284484666264224288868266264448468868222428448466626422428886826626444846886822242844846662642242888682662644484688682224284484666264224288868266264448468868222428448466626422428886826626444846886822242844846662642242888682662644484688682224284484666264224288868266264448468868222428448466626422428886826626444846886822242844846662642242888682662644484688682224284484666264224288868266264448468868222428448466...Ну и так далее.Искомая программа:Const   T = '6626422428886826626444846886822242844846';Var   S:BigInteger;BeginS:=ReadString.ToBigInteger;if S > 1 then WriteLn(T[(S mod 40).ToString.ToInteger+1])else WriteLn(1)End.
    • Автор:

      anna8uuu
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years