TCDFZ - Chữ số tận cùng khác 0

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>

int a[]={6,8,4,2,6,8,4};

int luythua(int k)
{
    if(k==0)
    return 1;
    return luythua(k-1)*5;
}

int tinh(int n)
{   
    int duoi=6;
    if(n==1||n==0)
    return 1;
    int x=n%10;
    int y=n/5;
    if(x==0) 
        duoi=6;
    else
    {
        for(int i=2;i<=x;i++)
            duoi=duoi*i;
        if(x>=5)
            duoi=duoi/5;
    }
    duoi=duoi%10;
    for(int i=0;i<=3;i++)
        {
            if(a[i]==duoi)
            {
                   duoi=a[i+y%4];
                   break;
            }
        }
    return (duoi*tinh(n/5))%10;
}

main()
{
      int n;
      scanf("%d",&n);
      printf("%d",tinh(n));
    //  getch();
}     

Download