100!

 


Один графоман на Яндекс Дзен написал статью об использовании рекурсии на ассемблере и привел пример вычисления факториала. Естественно, что такое решение не даст правильное значение 100!.

Поэтому лучше сделать так(TinyC):

//https://www.programming9.com/programs/c-programs/259-compute-factorial-of-large-numbers-using-c
#include<stdio.h>
int main()
{
    int a[200],n,counter,temp,i;
    a[0]=1;
    counter=0;
    printf("Enter the number to Find Factorial: ");
    scanf("%d",&n);
    for(; n>=2; n--)
    {
        temp=0;
        for(i=0; i<=counter; i++)
        {
            temp=(a[i]*n)+temp;
            a[i]=temp%10;
            temp=temp/10;
        }
        while(temp>0)
        {
            a[++counter]=temp%10;
            temp=temp/10;
        }
    }
    for(i=counter; i>=0; i--)
        printf("%d",a[i]);
    return 0;
}

PureBasic

Global Dim a.l(200)
     a(0)=1;
     counter.l=0;
     
For n=100 To 2 Step -1
temp.l=0;
For i=0 To counter
  temp=a(i)*n+temp
  a(i)=temp%10
  temp=temp/10
  Next i
  While temp>0
  counter+1
  a(counter)=temp%10
 temp=temp/10
Wend
  
Next n
s.s=""
For i=counter To 0 Step -1
  s=s+Str(a(i))
Next i
Debug s


сырки


Комментарии