winstan
Эксплотатор)
- Сообщения
- 406
- Репутация
- 79
Хм не знал что на длинну числового значения есть ограничение :(
Пришлось умножать столбиком)
для работы скрипта нелльзя искать фаториал числа меньше 2
Добавлено:
первоя цифра фаториала 5001 получилась 2
Пришлось умножать столбиком)
Код:
$val=100
_fac($val)
Func _fac($val)
Local $ret=1
For $i=1 to $val
$ret=ymnozh($ret,$i)
Next
ConsoleWrite("Число: "&$val&@CRLF)
ConsoleWrite("Факториал: "&$ret&@CRLF)
ConsoleWrite("Первое число: "&StringLeft( $ret,1)&@CRLF)
EndFunc
Func ymnozh($a,$b)
$a_arry=StringSplit ( $a, "")
Local $arry[$a_arry[0]+5]
for $i=1 to $a_arry[0]
$arry[$a_arry[0]-$i]=$a_arry[$i]*$b
Next
for $i=0 to UBound($arry)-2
If $arry[$i]>9 Then
$t=$arry[$i]
$arry[$i]=StringRight($t,1 )
$arry[$i+1]+=Floor ($t/10)
EndIf
Next
$ret=""
for $i=0 to UBound($arry)-1
$ret=$arry[$i]&$ret
Next
Return $ret
EndFunc
для работы скрипта нелльзя искать фаториал числа меньше 2
Добавлено:
Сообщение автоматически объединено:
первоя цифра фаториала 5001 получилась 2