标签:
题目让求N的阶乘的结果的最右面的一位非零整数。
阶乘的方法是模拟,但是每次只保留后面最后一位非零整数和前面的几位。(因为数据范围小)
/* ID: modengd1 PROG: fact4 LANG: C++ */ #include <iostream> #include <stdio.h> using namespace std; int main() { freopen("fact4.in","r",stdin); freopen("fact4.out","w",stdout); int N; int ans; while(~scanf("%d",&N)) { ans=1; for(N;N>0;N--) { ans*=N; while((ans%10)==0)//去掉后面的最右边第一位非零数字后面的0 { ans/=10; } ans%=100000;//数据比较弱保留4位就够了 } cout<<ans%10<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/modengdubai/p/4820365.html