zoukankan      html  css  js  c++  java
  • HDU ACM 1066 Last non-zero Digit in N!

    #include<iostream>
    using namespace std;
    
    int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
    char s[1010];    //字符串
    int num[1010];   //转换为数字
    
    int sovle()
    {
    	int len,i,c,ans;
    
    	len=strlen(s);
    	ans=1;
    	for(i=0;i<len;i++)
    		num[i]=s[len-i-1]-'0';
    	while(len)
    	{
    		len-=!num[len-1];
    		ans=ans*mod[num[1]%2*10+num[0]]%10;
    		for(i=len-1,c=0;i>=0;i--)
    		{
    			c=c*10+num[i];
    			num[i]=c/5;        //倍数
    			c%=5;           //余数
    		}
    	}
    	return ans;
    }
    
    int main()
    {
    	while(scanf("%s",s)==1)
    	{
    		printf("%d
    ",sovle());
    	}
        return 0;
    }
    參考了网上的思路搞的,这题真难搞懂。

  • 相关阅读:
    Vue自定义指令 directive
    Vue过滤器 filters
    贪心
    家庭作业
    线段
    数列极差
    shell
    智力大冲浪
    加工生产调度
    喷水装置
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5221631.html
Copyright © 2011-2022 走看看