Факториал больше 26 вычисляется неправильно - C (СИ)

Формулировка задачи:

Здравствуйте! Возникла такая проблема: необходимо написать программу на языке C, вычисляющую факториал числа, пробовал с помощью рекурсии, но факториал больше 26 она считает неправильно, помогите пожалуйста, люди добрые

Код к задаче: «Факториал больше 26 вычисляется неправильно - C (СИ)»

textual
int main(int argc, char *argv[])
{
    int l,i,n,x,y; //n - ââîäèìîå ÷èñëî, x - ïåðåГ*îñ, y - äëÿ ïðîìåæóòî÷Г*îãî âû÷èñëåГ*ГЁГї
    char k[100000]=""; //2568 Г*Г* 1000 , 1000000 Г*Г* ~25000
    int was;
 
    setlocale(LC_ALL,"Russian_russia.1251");
    printf("Ââåäèòå ÷èñëî:");
    scanf("%d",&n);
    k[99999]=1;
 
    for(l=2;l<=n;l++)
        for(x=0,i=99999;i>-1;i--)
        {
            y=k[i]*l+x; //ГіГ¬Г*îæГ*ГҐГ¬ i-Гѕ öèôðó Г*Г* ÷èñëî îò 2 äî n
            k[i]=y%10;  //Г§Г*ïèñûâГ*ГҐГ¬ îñòГ*òîê
            x=y/10;     //Г* ГЅГІГ® "Гў óìå", ГІ.ГҐ. ïåðåГ*îñ Гў ñëåäóþùèé Г°Г*çðÿä
        }
    for(l=was=i=0;i<100000;i++)//âûâîäèì ÷èñëî ГЇГ® 75 öèôð Гў ñòðîêå
    {
        if(l%75==0 && l>0 && was)printf("\n");
        if(k[i]>0 || was)
        {
            printf("%d",k[i]);
            was=1;
            l++;
        }
    }
    printf("\n%d öèôð\n",l);
    system("PAUSE");    
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

7   голосов, оценка 4.714 из 5


СДЕЛАЙТЕ РЕПОСТ