POJ 1604

简介: 点击打开链接 题意:求一个数 的阶乘然后找到最后一个不是0的数,例如120 ,则最后一个不是0即为2 如果按照以前的方法求N!,这题肯定超时,因为只要一个数所以我们只要用到后面的5位数就可以,(5位数和最大10000相乘才不会超过int ...

点击打开链接


题意:求一个数 的阶乘然后找到最后一个不是0的数,例如120 ,则最后一个不是0即为2

如果按照以前的方法求N!,这题肯定超时,因为只要一个数所以我们只要用到后面的5位数就可以,(5位数和最大10000相乘才不会超过int 范围)

代码:


#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int s[10005];
int n;
void multiply()
{
    int i , j;
    memset(s,0,sizeof(s));
    s[1] = 1;
    j = 1;
    for(i = 2;i <= 10000; i++)
    {
        j *= i;
        while(j%10 == 0)//去掉后面的0
            j /= 10;
        j %= 100000;//j只要取后面5位数即可(6位会溢出)
        s[i] = j%10;//在求出第一个非0元素保存到数组中
    }
}
int main()
{
    multiply();
    while(cin>>n)
    {
         //注意输出格式
          printf("%5d",n);
        cout<<" -> "<<s[n]<<endl;
    }
    return 0;
}


目录
相关文章
|
7月前
Hopscotch(POJ-3050)
Hopscotch(POJ-3050)
|
算法框架/工具
POJ 2262 Goldbach's Conjecture
POJ 2262 Goldbach's Conjecture
139 0
|
人工智能 机器学习/深度学习
POJ 1012 Joseph
Joseph Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 53862   Accepted: 20551 Description The Joseph's problem is notoriously known.
843 0
|
测试技术
POJ 1001
此题用最朴素的思路实现即可,需模拟加法器,乘法器,最烦人的地方是特殊情形,如末位是小数点(12.^2=144,取小数点),整数末位是0(100^2=10000),0次幂,测试用例可能超出题目中说的范围,可能包含0次幂(100.0^0=0, 0.10^1=0.1)。
754 0
poj 1455
Description n participants of > sit around the table. Each minute one pair of neighbors can change their places.
620 0
POJ 2487 Stamps
Description Background Everybody hates Raymond. He’s the largest stamp collector on planet earth and because of that he always makes fun of all the others at the stamp collector parties.
1064 0
|
机器学习/深度学习 算法
|
算法 机器人 编译器
POJ-2632
#include int main() { int k,a,b,n,m,i,j,num,rep,rect[100][100],robot[100][3]; int flag; char c; for(scanf("%d...
929 0